美文网首页
Go数据类型、关键字、标识符

Go数据类型、关键字、标识符

作者: 泥人冷风 | 来源:发表于2020-12-13 10:30 被阅读0次

    1 数据类型

    1.1 按类别

    • 布尔型:只可以是常量 true 或者 false。
    //eg:
    var b bool = true
    
    • 数字类型:整型和浮点型。

    • 位的运算采用补码字符串类型:字符串就是一串固定长度的字符连接起来的字符序列,Go 的字符串是由单个字节连接起来。

    • Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本

    • 复数:complex128(64 位实数和虚数)和 complex64(32 位实数和虚数),其中 complex128 为复数的默认类型。 注:

    • i. 复数的值由三部分组成 RE + IMi,其中 RE 是实数部分,IM 是虚数部分,RE 和 IM 均为 float 类型,而最后的 i 是虚数单位。

    var name complex128 = complex(x, y)
    //或者
    z := complex(x, y)
    x = real(z)
    y = imag(z)
    
    • ii. 复数也可以用==和!=进行相等比较,只有两个复数的实部和虚部都相等的时候它们才是相等的

    1.2 派生类型

    • 指针类型(Pointer)
    • 数组类型
    • 结构化类型(struct)
    • Channel类型
    • 函数类型
    • 切片类型
    • 接口类型(interface)
    • Map类型

    1.3 基于架构

    整型,同时提供了四种有符号整型,分别对应8、16、32、64bit(二进制)的有符号整数,与此对应四种无符号的整数类型

    • uint8:无符号8位整型(0~255)
    • uint16
    • uint32
    • uint64
    • int8
    • int16
    • int32
    • int64
      浮点数
    • float32
    • float64
    • complex64(实数虚数)
    • complex128
      其他
    • byte
    • rune
    
    package main
    
    import (
        "fmt"
        "unicode/utf8"
    )
    
    func main() {
    
        var str = "hello 你好"
    
        //golang中string底层是通过byte数组实现的,座椅直接求len 实际是在按字节长度计算  所以一个汉字占3个字节算了3个长度
        fmt.Println("len(str):", len(str))
        
        //以下两种都可以得到str的字符串长度
        
        //golang中的unicode/utf8包提供了用utf-8获取长度的方法
        fmt.Println("RuneCountInString:", utf8.RuneCountInString(str))
    
        //通过rune类型处理unicode字符
        fmt.Println("rune:", len([]rune(str)))
    }
    

    返回结果:

    len(str): 12
    RuneCountInString: 8
    rune: 8
    
    • uint
    • int
    • uintptr(无符号整型,存放一个指针)

    注释:

      1. 表示Unicode字符的rune类型和int32类型是等价的,通常用于表示一个Unicode字符,是等价的。
    • 2.byte和uint8也是等价类型,byte类型一般用于强调数值是一个原始的数据而不是一个小的整数。
      1. 无符号的整数类型uintptr,它没有指定具体的bit大小但是足以容纳指针。只有在底层编程时才需要,特别是Go语言和C语言函数库或操作系统接口相交互的地方。
      1. 有符号整数采用2的补码形式表示,也就是最高bit位用来表示符号位,一个n-bit的有符号数的取值范围是从-2(n-1)到2(n-1)-1。无符号整数的所有bit位都用于表示非负数,取值范围是0到2n-1。
      1. 常量math.MaxFloat32 表示float32能取到的最大数值,大约是3.4e38。
      1. 常量math.MaxFloat64 表示float64能取到的最大数值,大约是1.8e308
      1. float32和float64能表示的最小值分别为1.4e-45和4.9e-324。
      1. 浮点数在声明的时候可以只写整数部分或者小数部分。
    const e = .71828 //0.71828
    const f = 1.           // 1
    
      1. 很小或很大的数最好用科学计数法书写,通过e或E来指定指数部分
    const Avogadro = 6.02214129e23   // 阿伏伽德罗常数
    const Planck = 6.62606957e-34      // 普朗克常数
    

    2 关键字

    2.1 25个关键字或保留字

    关键字 关键字 关键字 关键字 关键字
    break default func interface select
    case defer go map struct
    chan else goto package switch
    const fallthrough if range type
    continue for import return var

    2.2 36个预定义标识符

    预定义标识符 预定义标识符 预定义标识符 预定义标识符 预定义标识符 预定义标识符
    append bool byte cap close complex
    complex64 complex128 uint16 copy false float32
    float64 imag int int8 int16 uint32
    int32 int64 iota len make new
    nil panic uint64 print println real
    recover string true uint uint8 uintptr

    2.3 知识点

    • 程序一般由关键字、常量、变量、运算符、字符和函数组成。
    • 程序中可能会使用到这些分隔符:括号(),中括号[]和大括号{}。
    • 程序中可能会使用到这些标点符号:.、,、;、:和...。

    3 标识符

    标识符用来命名变量、类型等程序实体。一个标识符实际上就是一个或多个字母(AZ和az)数字(0~9)、下划线“_”组成的序列,但是第一个字符必须是字母或下划线而不能是数字。

    相关文章

      网友评论

          本文标题:Go数据类型、关键字、标识符

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