- 声明变量的三种方式(支持多变量声明)
// 声明变量方式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)
- 数据类型
- 基本数据类型
- 值类型(int int8 int16 int32 int64 uint uint8 uint 16 uint32 uint64 )
- 字符类型 (没有专门的字符类型,使用byte表示存储字符)
- 字符常量使用引号或单引号
- go中允许使用转义符将字符转换为特殊字符
- go中字符使用utf-8编码
- go中字符本质是一个整数,直接输出时是该字符对应的utf-8的编码
- 可以给变量直接赋值一个数字,然后使用格式化输出时%c会输出该数字对应的unicode字符
- 字符类型可以进行运算,相当于一个整数,因为他都有对应unicode码值
- 字符类型存储和读取规则
存储:字符->码值->二进制->存储
读取:二进制->码值->字符串->读取
- 布尔类型
- 只占用一个字节,只能为true或false,适用于逻辑运算一般用于程序流程控制
- if 条件控制语句
- for条件控制语句
- 字符串类型
- 字符串中的字节使用utf-8编码标识Unicode文本
- 字符串赋值后不能修改
- 字符串有两种表现形式(双引号,可以识别转义字符)(反引号,以字符串的原生形式输出,包含换行符和特殊字符)
- 字符串拼接方式,使用+拼接
- 当一行字符串太长时,需要使用多行字符串,加号需要放在上一行末尾
- 基本数据默认值
- 整形:0
- 浮点型:0
- 字符串:”“
- byte:0
- 布尔类型:false
- go基础数据类型转换(需要显示转换)
- int转float: float32(x)
- 非string基础类型转string
- 使用fmt.Sprintf(”参数“, 表达式)转换成字符串(常用)
- 使用strconv.FormatInt(变量,进制), strconv.FormatFloat(变量,"f", 精度,进制)
- 使用strconv.Itoa(num) 直接返回string类型
- sting转非string基础类型 注意如果没有转成功将输出默认值
- 字符串转布尔:strconv.ParseBool("true")
- 字符串转int:strconv.ParseInt("10", base, bitsize) base指定转成几进制的 bitsize指定输出结果大小,必须能无溢出的整数类型
- 字符串转float:strconv.ParseFloat("1.2", bitsize) bitsize指定输出结果大小,必须能无溢出的整数类型
- 注意事项(1:范围小的可以转换为范围大的)(2:转换类型后,变量本身的数据类型并没有变化)(3:转换时大范围转小范围,如果超过小范围取值范围系统不会报错,只是转换的结果按溢出处理)
- 复杂/派生数据类型
- 数组
- 切片
- 结构体
- 指针(pointer)
- 介绍
- 基础数据类型变量存储的就是值,也叫做值类型
- 使用&获取地址
- 使用*获取指针的值
- 指针类型存储的是一个地址,这个地址指向的空间存的才是值
- 管道
- 函数
- 接口
- map
- 值类型
- 包含int、float、bool、string、数组、结构体
- 特点:值类型变量直接存储值,内存通常在栈中分配
- 引用类型
- 包含指针、切片、map、管道、接口
- 特点:引用类型变量存储的是地址,这个地址对应的空间才是真正的值内存通常在堆上分配,没有任何变量引用这个地址时,改地址对应的数据空间就会变成垃圾,由GC回收
posted @
2024-08-12 00:42
你看起来真的很好吃
阅读(
4)
评论()
编辑
收藏
举报