课程名称: Go开发工程师全新版
课程章节: 4-1 数值、浮点数和字符类型
课程讲师: bobby
课程内容:
布尔类型:bool 只能存放 true 和 false,表示 真(true)、假(false) 的意思
数值类型
整数:int、int8、int16、int32、int64、uint、uint8、uint16、uint32、uint64
浮点数:float32、flota64
复数: complex64(32 位实数和虚数)、complex128(64 位实数和虚数)
使用 complex(x,y) 为复数赋值,x、y 分别表示构成该复数的两个 float64 类型的数值,x 为实部,y 为虚部。
var name complex128 = complex(1, 2)
real(z):go 内置函数,获取复数的实部,也就是 x
imag(z) :go 内置函数,获取复数的虚部,也就是 y。
byte 字节类型:本质是 int8,存放字节
rune 字节类型:本质是 int32,存放字节
字符串类型:string
布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true
package main import "fmt" func main() { var ok bool ok = true ok = false ok = '123' // 错误,只能是 true 和 false }
整数型
可以简单讲解一下二进制和位数的关系,以及 int 和 uint 的关系
int8:有符号 8 位整型 (-128 到 127) 长度:8bit
int16: 有符号 16 位整型 (-32768 到 32767)
int32: 有符号 32 位整型 (-2147483648 到 2147483647)
int64: 有符号 64 位整型 (-9223372036854775808 到 9223372036854775807)
uint:动态类型,根据操作系统来定义,如果操作系统是32,他就是 uint32
uint8: 无符号 8 位整型 (0 到 255) 8位都用于表示数值:
uint16: 无符号 16 位整型 (0 到 65535)
uint32: 无符号 32 位整型 (0 到 4294967295)
uint64: 无符号 64 位整型 (0 到 18446744073709551615)
浮点型
float32: 32位浮点型数,大约是 3.4e38
float64: 64位浮点型数,大约是 1.8e308
byte 等于 uint8,主要用于存放英文字符,字符本质是一个数字
package main import "fmt" func main() { // 主要用于存放英文字符,不能存放中文, // 因为中文的字节超过 int8 的长度也就(-128 到 127) var c byte c = 'a' fmt.Printf(c) fmt.Printf("c=%c", c) }
rune 等于 int32,主要用于存放字符,存放中文字符使用它,字符本质是一个数字
package main import "fmt" func main() { // 主要用于存放中英文字符 var c rune c = '慕' fmt.Printf(c) fmt.Printf("c=%c", c) }
Golang中没有专门的字符类型,如果要存储单个字符(字母),一般使用 byte 来保存。
字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。也就是说对于传统的字符串是由字符组成的,而Go的字符串不同,它是由字节组成的。
package main import ( "fmt" ) func main() { var a byte a = 'a' //输出ascii对应码值 。。 这里说明一下什么是ascii码 fmt.Println(a) fmt.Printf("a=%c", a) }
字符常量 只能使用 单引号 括起来,例如:var a byte = 'a'
var a int = 'a'
package main import ( "fmt" ) func main() { var a byte a = "a" //输出ascii对应码值 。。 这里说明一下什么是ascii码 fmt.Println(a) fmt.Printf("a=%c", a) } 代码块
字符本质是一个数字, 可以进行加减乘除
package main import ( "fmt" "reflect" ) func main() { a := 'a' //这里注意一下 1. a+1可以和数字计算 2.a+1的类型是32 3. int类型可以直接变成字符 fmt.Println(reflect.TypeOf(a+1)) fmt.Printf("a+1=%c", a+1) } 代码块
字符串就是一串固定长度的字符连接起来的字符序列。Go 的字符串是由单个字节连接起来的。Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本。
package main import "fmt" func main() { var name string name = "i am bobby" fmt.Println(name) }
课程收获:
了解基础数据类型