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:类型断言基本使用方法的主要内容,如果未能解决你的问题,请参考以下文章

Golang type assertion 类型断言

Golang type assertion 类型断言

Golang type assertion 类型断言

golang类型断言

Golang关于Go中的类型转换

golang 类型断言的学习