1.GO语言判断变量类型
断言格式:value,ok:=接口{}(变量名).(需要断言的类型) x.(T) x为需要断言的值,但是这个值当下的类型必须为接口类型,哪个接口无所谓 interface{}代表一个空接口
例:
package main
import "fmt"
var bookStr=[]string{"math","English","dangdang"}
func main(){
bookStr:=map[int]string {0:"math",1:"English",2:"dangdang"} //①
fmt.Printf("The element is %q. ",bookStr[1]) //②
}
%q 带双引号输出的字符串
断言为: value,ok:=interface{}(bookStr).([]string)
可以写在①和②中间,用来判断类型
ok类型为bool, 真则true,否则false
ok为真,则判断的值被转换为[]string,并且赋值给value,否则value为nil
2.{ }的含义
interface{} 不包含任何方法定义的,空的结构类型
struct{} 不包含任何字段和方法的,空的结构体类型
[ ]string{} 空的切片值
map[int]string{} 空的map值