go语言——数据类型

  1. 声明变量的三种方式(支持多变量声明)
     // 声明变量方式1
        // 指定变量类型,声明后若不赋值,使用默认值
        var i int
        fmt.Println("i=", i)

        // 声明变量方式2
        // 类型推导式
        var b = 2
        fmt.Printf("b=%d \n", b)

        // 声明变量方式3(只能用在函数内)
        // 省略var
        c := 3
        fmt.Printf("c=%d \n", c)
  2. 数据类型
    1. 基本数据类型
      1. 值类型(int int8 int16 int32 int64 uint uint8 uint 16 uint32 uint64 )
      2. 字符类型 (没有专门的字符类型,使用byte表示存储字符)
        1. 字符常量使用引号或单引号
        2. go中允许使用转义符将字符转换为特殊字符
        3. go中字符使用utf-8编码
        4. go中字符本质是一个整数,直接输出时是该字符对应的utf-8的编码
        5. 可以给变量直接赋值一个数字,然后使用格式化输出时%c会输出该数字对应的unicode字符
        6. 字符类型可以进行运算,相当于一个整数,因为他都有对应unicode码值
        7. 字符类型存储和读取规则
          存储:字符->码值->二进制->存储
          读取:二进制->码值->字符串->读取                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
      3. 布尔类型
        1. 只占用一个字节,只能为true或false,适用于逻辑运算一般用于程序流程控制
        2. if 条件控制语句
        3. for条件控制语句                                                        
      4. 字符串类型 
        1. 字符串中的字节使用utf-8编码标识Unicode文本
        2. 字符串赋值后不能修改
        3. 字符串有两种表现形式(双引号,可以识别转义字符)(反引号,以字符串的原生形式输出,包含换行符和特殊字符)
        4. 字符串拼接方式,使用+拼接
        5. 当一行字符串太长时,需要使用多行字符串,加号需要放在上一行末尾

      5. 基本数据默认值
        1. 整形:0
        2. 浮点型:0
        3. 字符串:”“
        4. byte:0
        5. 布尔类型:false 
      6. go基础数据类型转换(需要显示转换)
        1. int转float: float32(x)
        2. 非string基础类型转string
          1. 使用fmt.Sprintf(”参数“, 表达式)转换成字符串(常用)
          2. 使用strconv.FormatInt(变量,进制), strconv.FormatFloat(变量,"f", 精度,进制)
          3. 使用strconv.Itoa(num) 直接返回string类型
        3. sting转非string基础类型  注意如果没有转成功将输出默认值
          1. 字符串转布尔:strconv.ParseBool("true")
          2. 字符串转int:strconv.ParseInt("10", base, bitsize)  base指定转成几进制的  bitsize指定输出结果大小,必须能无溢出的整数类型 
          3. 字符串转float:strconv.ParseFloat("1.2", bitsize)  bitsize指定输出结果大小,必须能无溢出的整数类型
        4. 注意事项(1:范围小的可以转换为范围大的)(2:转换类型后,变量本身的数据类型并没有变化)(3:转换时大范围转小范围,如果超过小范围取值范围系统不会报错,只是转换的结果按溢出处理)
    2. 复杂/派生数据类型
      1. 数组
      2. 切片
      3. 结构体
      4. 指针(pointer)
        1. 介绍
          1. 基础数据类型变量存储的就是值,也叫做值类型
          2. 使用&获取地址
          3. 使用*获取指针的值
          4. 指针类型存储的是一个地址,这个地址指向的空间存的才是值
      5. 管道
      6. 函数
      7. 接口
      8. map
    3. 值类型
      1. 包含int、float、bool、string、数组、结构体
      2. 特点:值类型变量直接存储值,内存通常在栈中分配
    4. 引用类型
      1. 包含指针、切片、map、管道、接口
      2. 特点:引用类型变量存储的是地址,这个地址对应的空间才是真正的值内存通常在堆上分配,没有任何变量引用这个地址时,改地址对应的数据空间就会变成垃圾,由GC回收
posted @ 2024-08-12 00:42  你看起来真的很好吃  阅读(4)  评论(0编辑  收藏  举报