1.布尔类型
布尔型的值只可以是常量 true 或者 false。定义方式如下:
var value bool = true
bool类型占1个字节。
2.数字类型
数字类型主要分为整型int和浮点型float32、float64,下面做分别描述
类型 | 描述 |
---|---|
unit8 | 无符号 8 位整型 (0 到 255) |
unit16 | 无符号 16 位整型 (0 到 65535) |
unit32 | 无符号 32 位整型 (0 到 4294967295) |
unit64 | 无符号 64 位整型 (0 到 18446744073709551615) |
int8 | 有符号 8 位整型 (-128 到 127) |
int16 | 有符号 16 位整型 (-32768 到 32767) |
int32 | 有符号 32 位整型 (-2147483648 到 2147483647) |
int64 | 有符号 64 位整型 (-9223372036854775808 到 9223372036854775807) |
浮点型
Go语言也支持复数,其中位的运算采用补码。
类型 | 描述 |
---|---|
float32 | IEEE-754 32位浮点型数 |
float64 | IEEE-754 64位浮点型数 |
complex64 | 32 位实数和虚数 |
complex128 | 64 位实数和虚数 |
其他数字类型
类型 | 描述 |
---|---|
byte | 类似 uint8 |
rune | 类似 int32 |
uint | 32 或 64 位 |
int | 与 uint 一样大小,32 或 64 位 |
uintptr | 无符号整型,用于存放一个指针 |
3.字符串类型
字符串就是一串固定长度的字符连接起来的字符序列。Go 的字符串是由单个字节连接起来的。Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本。
例如:
func main()
{
//string的基本使用
var name string = "hello world!"
fmt.Println(name)
}
- Go语言的字符串的字节使用UTF-8编码标识Unicode文本,所以Golang统一使用UTF-8编码。
- 字符串一旦赋值了,字符串就不能修改了,在Go中字符串是不可变的。
字符串的两种表示形式
- 双引号,会识别转义字符。
- 反引号,以字符串的原生形式输出,包括换行和特殊字符。
字符串的拼接方式
var str = "hello" + "world"
str += "哈RORO!"
4.派生类型
包括:
- 指针类型(Pointer)
- 数组类型
- 结构化类型(struct)
- Channel类型
- 函数类型
- 切片类型
- 接口类型(interface)
- Map类型
字符类型
Golang中没有专门的字符类型,如果要存储单个字符(字母),一般使用byte来保存。
func main() {
var aa byte = 'a'
var bb byte = '0' //这是字符的0
//输出对应的字符的码值
fmt.Println("aa=", aa)
fmt.Println("bb=", bb)
//输出对应的字符
fmt.Printf("aa=%c bb=%c\n",aa, bb)
}
基础数据的默认值
在go中,数据类型都有一个默认值,当没有赋值时,就会保留默认值,在go中,默认值又叫零值。
类型 | 默认值 |
---|---|
整型 | 0 |
浮点型 | 0 |
字符串 | “” |
布尔类型 | false |
例如:
var aa int // 0
var bb float32 // 0
var cc float64 // 0
var buer bool // false
var dd string //""
fmt.Printf("aa=%d,bb=%v,cc=%v,buer=%v,dd=%v",aa,bb,cc,buer,dd)