golang断言与类型判断


golang断言

  • 一个interface 需要类型转换的时候,语法 i.(T)
  • v,ok:=i.(T) ,ok=true代表断言成功,ok=false v是这个类型的0值
package main

import "fmt"

func main() {

   var i interface{} = 10
   v, ok := i.(bool)
   fmt.Println(v, ok)
   v2 := i.(int)
   fmt.Println(v2)
}


/*
false false
10
*/

类型判断

package main

import "fmt"

func main() {

    var i interface{} = 10
    v, ok := i.(string)
    fmt.Println(v, ok)
    v2 := i.(int)
    fmt.Println(v2)

    switch i.(type) {
    case int:
        fmt.Println("int")
    case string:
        fmt.Println("string..")
    case bool:
        fmt.Println("bool")
    default:
        fmt.Println("eroor")
    }
}


/*
 false
10
int
*/

文章作者: 千里
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 千里 !
  目录