空接口和类型断言

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辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一天,我和爸爸妈妈烤红薯。 我听从爸爸的吩咐,先把红薯给洗干净,然后放在烤箱里,等过了大概半个小时,我就听见了一个...
    贾佳颖阅读 1,558评论 0 3
  • 爸爸的怀抱总是那么暖, 我和弟弟总喜欢, 贴着爸爸的怀抱, 心里充满了暖暖的爱。 爸爸的怀抱总是那么宽, 哥哥我贴...
    童心慢读阅读 4,513评论 5 38

友情链接更多精彩内容