golang:类型断言基本使用方法
Posted live4m
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang:类型断言基本使用方法相关的知识,希望对你有一定的参考价值。
package main
import "fmt"
func f(i interface{}) {
s := i.(string) //转化为string,如果转化失败会报panic
fmt.Println(s)
}
func main() {
f("100")
f(1)
}
/*
结果:
100
panic: interface conversion: interface {} is int, not string
goroutine 1 [running]:
main.f({0x5b44a0, 0x5e5e50})
g:/repos/go/test/main.go:6 +0x8a
main.main()
g:/repos/go/test/main.go:11 +0x3a
exit status 2
*/
package main
import "fmt"
func f(i interface{}) {
s, ok := i.(string) //ok是bool,表示是否转化成功
if !ok {
fmt.Println("转化失败")
return
}
fmt.Println(s)
}
func main() {
f("100")
f(1)
}
package main
import "fmt"
func f(i interface{}) {
switch t := i.(type) {//配合switch-case使用
case string:
fmt.Println("string", t)
case int:
fmt.Println("int", t)
}
}
func main() {
f("100")
f(1)
}
以上是关于golang:类型断言基本使用方法的主要内容,如果未能解决你的问题,请参考以下文章