美文网首页Golang Wikis
golang 学习笔记 1.3 基本类型

golang 学习笔记 1.3 基本类型

作者: Diogoxiang | 来源:发表于2019-03-21 22:15 被阅读0次

    1.3 基本类型

    更明确的数字类型命名,支持 Unicode,支持常用数据结构。

    常用数据结构

    支持八进制、十六进制,以及科学记数法。标准库 math 定义了各数字类型取值范围。

    a, b, c, d := 071, 0x1F, 1e9, math.MinInt16
    

    空指针值 nil,而非 C/C++ NULL

    1.4 引用类型

    引用类型包括 slice、map 和 channel。它们有复杂的内部结构,除了申请内存外,还需要初始化相关属性。
    内置函数 new 计算类型大小,为其分配 零值内存 ,返回指针。而 make 会被编译器翻译成具体的创建函数,由其分配内存和初始化成员结构,返回 对象非指针

    a := []int{0, 0, 0} // 提供初始化表达式。
    a[1] = 10
    
    b := make([]int, 3) // make slice
    b[1] = 10
    
    c := new([]int)
    c[1] = 10   // Error: invalid operation: c[1] (index of type *[]int)
    

    有关引用类型具体的内存布局,可参考后续章节。

    1.5 类型转换 ( 简单记录 )

    不支持隐式类型转换,即便是从窄向宽转换也不行。

    var b byte = 100
    var n int = b // Error: cannot use b (type byte) as type int in assignment
    var n int = int(b) // 显式转换
    

    使用括号避免优先级错误。

    *Point(p) // 相当于 *(Point(p))
    (*Point)(p)
    <-chan int(c) // 相当于 <-(chan int(c))
    (<-chan int)(c)
    

    同样不能将其他类型当 bool 值使用。

    a := 100
    if a { // Error: non-bool a (type int) used as if condition
        println("true")
    }
    

    相关文章

      网友评论

        本文标题:golang 学习笔记 1.3 基本类型

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