Go|数据类型
☘️布尔型
布尔型的值只可以是常量true或false,一个简单的例子:var bool = true。
package main
import "fmt"
func a() {
//var 变量名 数据类型
//bool:true false
//bool 默认值 false
var isFlag bool = false
var isFlag2 bool = true
println(isFlag)
//打印isFlag的数据类型 %T 代表数据类型
println(fmt.Sprintf("%T", isFlag), isFlag)
println(fmt.Sprintf("%T", isFlag2), isFlag2)
}
func main() {
a()
}
☘️数字型
整型 int 喝浮点型 float32、float64,Go语言支持整形喝浮点型数字。并且支持复数,其中位的运算采用补码。
Go也有基于架构的类型,例如:uint无符号、int 有符号
序号 | 类型和描述 | |
---|---|---|
1 | uint8无符号\ | 8位整型(0 到 255) |
2 | uint16无符号\ | 16位整型(0 到 65535) |
3 | uint32无符号\ | 32位整型(0 到 4294967295) |
4 | uint64无符号\ | 64位整型(0 到 18446744073709551615) |
5 | int8有符号\ | 8位整型(-128 到 127) |
6 | int16有符号\ | 16位整型(-32768 到 32767) |
7 | int32有符号\ | 32位整型(-2147483648 到 2147483647) |
8 | int64有符号\ | 64位整型(-9223372036854775808 到 9223372036854775807) |
浮点型
package main
import "fmt"
func main() {
//定义一个整数
var age int = 10
println(fmt.Sprintf("age的数据类型是:%T,age的值是:", age), age)
//定义一个浮点数
//默认是6位小数
var money float64 = 69169.6871
fmt.Printf("money的数据类型是:%T, money的值是:%.2f\n", money, money)
var num1 float32 = 3.1415926
var num2 float64 = 3.1415926
fmt.Println("num1的值是:", num1, "num2的值是:", num2)
}
/* 运行结果
age的数据类型是:int,age的值是: 10
money的数据类型是:float64, money的值是:69169.69
num1的值是: 3.1415925 num2的值是: 3.1415926
*/
更多数字类型
序号 | 类型和描述 |
---|---|
1 | byte类似uint8 |
2 | rune类似int32 |
3 | uint32或64位 |
4 | int 与 uint一样大小 |
5 | uintptr 无符号整型,用于存放一个指针 |
☘️字符串型
字符串就是一串固定长度的字符连接起来的字符序列。
Go的字符串是由单个字节连接起来的,Go语言的字符串使用UTF-8 编码标识Unicode 文本。
package main
import "fmt"
func main() {
var name string
name = "斯嘉"
println(fmt.Sprintf("%T", name), name)
//单引号 字符,对应的类型是整型 -》 字符码表
a1 := 'A'
a2 := "A"
a3 := 'a'
a4 := "a"
//编码表 ASCII 字符码表
//所有的中国的编码表 GBK GB2312 GB18030
//unicode 万国码 UTF-8
println(fmt.Sprintf("%T", a1), a1)
println(fmt.Sprintf("%T", a2), a2)
println(fmt.Sprintf("%T", a3), a3)
println(fmt.Sprintf("%T", a4), a4)
// 字符串的拼接 +
println("作者:" + name + ",年龄:18岁")
// 转义字符
println("作者:" + name + ",\n年龄:18岁")
println("作者:" + name + ",\t年龄:18岁")
println("作者:" + name + ",\b年龄:18岁")
println("作者:" + name + ",\r年龄:18岁")
println("作者:" + name + ",\"年龄:18岁")
println("作者:" + name + ",\\年龄:18岁")
}
/* 输出结果:
string 斯嘉
int32 65
string A
int32 97
string a
作者:斯嘉,年龄:18岁
作者:斯嘉,
年龄:18岁
作者:斯嘉, 年龄:18岁
作者:斯嘉,年龄:18岁
年龄:18岁,
作者:斯嘉,"年龄:18岁
作者:斯嘉,\年龄:18岁
*/