package main
import (
"fmt"
"reflect"
)
// 如果要使用第一种断言方法,把注释去掉即可
func main() {
//复数complex(实部real,虚部image) 3 + 4j
//fmt.Println("怪兽",0,1.2,true,complex(3,4))
values := []interface{}{"怪兽",0,1.2,true,complex(3,4)}
// 第一种方法:
//全面类型断言
/*for _,v := range values{
switch v.(type) {
case string:
fmt.Println(v,"是字符串")
case int,int8,int16:
fmt.Println(v,"是整型")
case float32,float64:
fmt.Println(v,"是浮点型")
case bool:
fmt.Println(v,"是布尔型")
default:
fmt.Printf("%v是%T类型",v,v)
}
}*/
// 第二种方法
//重点类型断言
for _,v := range values {
if com,ok := v.(complex128); ok {
fmt.Println("活捉一个复数",com, real(com), imag(com))
}else {
fmt.Println("v的类型是",reflect.TypeOf(v))
}
}
}
网友评论