1.6 基础数据类型

一、整形

  1. 计算机换算规则:

    • 1GB = 1024MB

    • 1MB = 1024KB

    • 1KB = 1024B

    • 1B = 8bit

  2. 一个比特位只有0或1两种表达方式

  3. int8 = $2^{8}$ (也就是一个字节,范围[-128-127])

  4. uint8表示从0起,不可为负数,即[0-255]

  5. 同理可以解析int16int32int64

  6. int类型是动态的,根据当前系统定义,32位系统默认int32, 64位系统默认int64

var a int = 100
var b int8 = 100
var c int16 = 100
var d uint8 = 10

fmt.Println(a, b, c, d)

二、浮点型

  1. float32:表示单精度浮点型,使用了4字节存储,最多7位十进制有效数字,超出会进行四舍五入操作

  2. fload64:表示双精度浮点型,使用8字节存储,最多有15或16位有效数字,超出会进行四舍五入操作

  3. 科学计数法(指数类型)也归并在浮点类型中($2^{10}$ =2e10 )

var f1 float32 = 3.0123456789123456789
var f2 float64 = 3.0123456789123456789
fmt.Println(f1, reflect.TypeOf(f1))
fmt.Println(f2, reflect.TypeOf(f2))

// 指数(科学计数法)
var f3 = 2e10
fmt.Println(f3, reflect.TypeOf(f3))

三、布尔类型

  1. 布尔类型只有两个值,truefalse,分别代表类型中的真和假

  2. 以后的代码中,基本上经过比较或判断获取布尔值类型

var boo1 bool = true
var boo2 bool = false

fmt.Println(2 > 1)

四、字符串

  1. 字符串是最常用的数据类型,是通过双引号将多个字符按串联起来的一种数据,用于展示文本

  2. go语言会对字符串增加索引,从0开始到最后以为,空格也算在内

  3. 字符串的基本操作:

    1. 假如定义的字符串为hello snow

      索引与字符对应关系:
      
      h e l l o   s n o w
      0 1 2 3 4 5 6 7 8 9
    2. 索引(获取单个字符)

      1. 获取方式:字符串[索引]

      2. 获取到的字符会自动转化为ASCII码,需要手动转义(string())

        fmt.Println(string(s[1])) // 获取字符e,索引位置为1,但输出结果是ASCII码,需要转义
    3. 索引和切片(获取连串的字符串)

      1. 获取方式:字符串[start:end)

      2. 左闭右开区间,左侧可以取到,右侧取不到,因此取的时候需要向后加一位

        // 截取hello字符串
        fmt.Println(s[0:5])
      3. 缺省值,默认从头开始的字符串,0是默认缺省值,可以省略不写

        // 截取hello字符串
        fmt.Println(s[:5])
      4. 取最后的字符串,因为索引不到10,但可用使用10结束,不建议;可以使用结束区间缺省的方式截取剩下字符串

        // 截取snow
        fmt.Println(s[6:10]) // 不建议
        fmt.Println(s[6:]) // 建议结束缺省的方式
      5. 拷贝整体字符串,两端都缺省即可,也可以直接等于赋值

        // 截取全部
        fmt.Println(s[:])
    4. 字符串拼接

      两端字符串拼接成一个字符串:+运算符即可

      var s1 = "lonely"
      var s2 = "snow"
      fmt.Println(s1 + s2)
    5. 转移符号

      转义符
      含义

      回车符(返回首行)

      换行符(直接跳到下一行的同列位置)

      制表符

      '

      单引号

      "

      双引号

      \

      反斜杠

      举例:打印一个Windows下的文件路径

      var s3 = "D:\\next\\go.exe"
      fmt.Println(s3)
    6. 反引号

      解决多行输出时候,写多个输出指令

      fmt.Println("1. 开始")
      fmt.Println("2. 重试")
      fmt.Println("3. 暂停")
      fmt.Println("4. 结束")
      
      // 反引号形式编写
      fmt.Println(`
      	1. 开始
      	2. 重试
      	3. 暂停
      	4. 结束
      `)

Last updated