panic: interface conversion

1 개요[ | ]

panic: interface conversion

2 문제상황[ | ]

package main

import "fmt"

type Person struct {
	name string
	age  int
}

func main() {
	var obj interface{} = "hello"
	var person *Person
	person = obj.(*Person) // panic: interface conversion: interface {} is string, not *main.Person
	fmt.Println(person)
}

3 조치방법[ | ]

package main

import "fmt"

type Person struct {
	name string
	age  int
}

func main() {
	var obj interface{} = "hello"
	var person *Person
	var ok bool
	person, ok = obj.(*Person)
	if !ok {
		fmt.Println("conversion failed")
		return
	}
	fmt.Println(person)
}

4 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}