数值类型
数值类型
整型
重要
重点,这一块内容是工作常用,面试常问的地方。(对于应届生而言)
// 有符号整数:可以表示正数、负数和 0
var i8 int8 = -8 // int8 取值范围:-128 ~ 127,最大值是 127
var i16 int16 = -16 // int16 取值范围:-32768 ~ 32767,最大值是 32767
var i32 int32 = -32 // int32 取值范围:-2147483648 ~ 2147483647,最大值是 2147483647
var i64 int64 = -64 // int64 取值范围:-9223372036854775808 ~ 9223372036854775807,最大值是 9223372036854775807
// 无符号整数:只能表示 0 和正数
var u8 uint8 = 8 // uint8 取值范围:0 ~ 255,最大值是 255
var u16 uint16 = 16 // uint16 取值范围:0 ~ 65535,最大值是 65535
var u32 uint32 = 32 // uint32 取值范围:0 ~ 4294967295,最大值是 4294967295
var u64 uint64 = 64 // uint64 取值范围:0 ~ 18446744073709551615,最大值是 18446744073709551615另外,当我们使用断言方式声明一个整型时,默认使用的时 int 类型。这个类型其实是一个别名类型。
a := 10重要
注意,int 类型会根据操作系统变化。如果你的系统是 32 位,那就是 int32;如果是 64 位,则是 int64。如果数值超过最大范围,GO 语言会自动选用更大的类型。
浮点型
:::success
了解即可,少数情况下会使用。存在失真问题。
:::
// 浮点类型:float32 精度较低,float64 精度更高
var f32 float32 = 3.14 // float32 最大值约为 3.4e38
var f64 float64 = 99.9 // float64 最大值约为 1.8e308一个经典例子:
package main
import "fmt"
func main() {
a := 0.1
b := 0.2
fmt.Println(a + b) // 输出 0.30000000000000004
fmt.Println(a + b == 0.3) // false!非常经典的坑
}复数
:::success
几乎用不到的类型,知道有就行,跳过
:::
// 复数类型:由实部和虚部组成
var c64 complex64 = 1 + 2i
var c128 complex128 = 3 + 4i特殊类型
:::success
一般在两种地方使用,一个是存储中文文章,需要压缩存储时使用;另外就是做一些文字结构转化的时候使用。
:::
// byte 表示一个字节,常用来存 ASCII 字符
var ch byte = 'A'
// rune 表示一个 Unicode 字符,适合中文等字符
var zh rune = '中'字符类型
重要
最重要的类型
package main
import "fmt"
func main() {
// Go 常见的基础数据类型
var s string = "hello"
s += " world"
s = `
hello
world
`
fmt.Println(s)
}另一种拼接方式:
package main
import "fmt"
func main() {
// Go 常见的基础数据类型
var s string = "hello"
s = fmt.Sprintf("%s %s", s, "world")
fmt.Println(s)
}布尔类型
:::success
这是最简单的类型
:::
