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.\n",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值