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))
}
}
}
空接口和类型断言
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...