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))
}
}
}
空接口和类型断言
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。