美文网首页
空接口和类型断言

空接口和类型断言

作者: 天涯_w | 来源:发表于2019-04-10 10:10 被阅读0次
    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))
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:空接口和类型断言

          本文链接:https://www.haomeiwen.com/subject/gcvgiqtx.html