panic: interface conversion

1 개요[ | ]

panic: interface conversion

2 문제상황[ | ]

Go
CPU
-1.0s
MEM
-0M
-1.0s
Copy
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)
}
panic: interface conversion: interface {} is string, not *main.Person

goroutine 1 [running]:
main.main()
	/home/user01/runbox.go:13 +0x2e
exit status 2

3 조치방법[ | ]

Go
Copy
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)
}
Loading

4 같이 보기[ | ]