zoukankan      html  css  js  c++  java
  • Go

    基本介绍
        类型断言,由于接口是一般类型,不知道具体类型,如果要转成具体类型,就需要使用类型断言,具体如下:
        var a interface{}    
        var b float64 = 1.22     
        a = b  // 空接口可以接收任何类型     
        // 那如何把 a 变为 float64呢     
        x := a.(float64)  // 类型断言     
        fmt.Printf("x 的类型=%T 值==%v", x, x)  // x 的类型=float64 值==1.22
     
        对上面代码的说明:
            在进行类型断言时,如果类型不匹配,就会报panic,因此进行类型断言时,要确保原来的空接口指向的就是断言类型;
            如何在进行断言时,带上检测机制,如果成功就ok,否则也不要报panic;
            // 类型断言(带检测的)    --> 推荐使用
            x, ok := a.(float32)     
            if ok {         
                fmt.Println("convert success ..")         
                fmt.Printf("x 的类型=%T 值=~~%v  ", x, x)     
            }else {         
                fmt.Println("convert fail")     
            }     
            fmt.Println("继续执行~~~~")
     
    断言的最佳实践(即在实际中应用)
        实现在多态数组中对结构体独有方法的实现
        定义一个函数对多个不确定类型的变量进行类型判断并且输出结果;
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    HDU 3047 Zjnu Stadium 带权并查集
    Arrays.sort()
    cache与负载均衡
    Java实现第八届蓝桥杯包子凑数
    Java实现第八届蓝桥杯日期问题
    Java实现第八届蓝桥杯日期问题
    Java实现第八届蓝桥杯取数位
    Java实现第八届蓝桥杯取数位
    Java实现第八届蓝桥杯纸牌三角形
    Java实现第八届蓝桥杯承压计算
  • 原文地址:https://www.cnblogs.com/guo-s/p/14160699.html
Copyright © 2011-2022 走看看