基本数据类型
# 基本语法——数据类型
# 一、基本数据类型
以下是go中可用的基本数据类型
- bool
- Numeric Types
- int8、int16、int32、int64、init
- uint8、uint16、uint32、uint64、uint
- float32、float64
- complex64、complex128
- byte
- rune
- string
# 1.1 布尔型bool
布尔型的值只可以是常量true
或者false
.一个简单的例子:var b bool = true
# 1.2 数值型
1、整数型
int8
有符号 8 位整型 (-128 到 127) 长度:8bit
int16
有符号 16 位整型 (-32768 到 32767)
int32
有符号 32 位整型 (-2147483648 到 2147483647)
int64
有符号 64 位整型 (-9223372036854775808 到 9223372036854775807)
uint8
无符号 8 位整型 (0 到 255) 8位都用于表示数值:
uint16
无符号 16 位整型 (0 到 65535)
uint32
无符号 32 位整型 (0 到 4294967295)
uint64
无符号 64 位整型 (0 到 18446744073709551615)
备注
int和uint:根据底层平台,表示32或64位整数.除非需要使用特定大小的整数,否则通常应该使用int来表示整数. 大小:32位系统32位,64位系统64位. 范围:-2147483648到2147483647的32位系统和-9223372036854775808到9223372036854775807的64位系统.
2、浮点型
float32
IEEE-754 32位浮点型数
float64
IEEE-754 64位浮点型数
complex64
32 位实数和虚数
complex128
64 位实数和虚数
3、其他
byte
类似 uint8
rune
类似 int32
uint
32 或 64 位
int
与 uint 一样大小
uintptr
无符号整型,用于存放一个指针
# 1.3 字符串型
字符串就是一串固定长度的字符连接起来的字符序列.Go
的字符串是由单个字节连接起来的.Go
语言的字符串的字节使用UTF-8
编码标识Unicode
文本
var str string
str = "Hello World"
2
# 1.4 数据类型转换:Type Convert
语法格式:Type(Value)
常数:在有需要的时候,会自动转型
变量:需要手动转型 T(V)
注意点:
- 兼容类型可以转换
# 1.5.基础数据类型demo
package main
import "fmt"
func main() {
/*
Go语言的数据类型:
1.基本数据类型
布尔类型(bool):
取值: true、false
数值类型:
整数: int
有符号: 最高位表示符号位,0正数,1负数,其余位表示数值
int8 (-128 到 127)
int16 (-32768 到 32767)
int32 (-2147483648 到 2147483647)
int64 (-9223372036854775808 到 9223372036854775807)
无符号: 所有的为表示数值
uint8 (0 到 255)
uint16 (0 到 65535)
uint32 (0 到 4294967295)
uint64 (0 到 18446744073709551615)
int,uint
byte:uint8
rune:int32
浮点:
float32,float64
复数: complex
字符串(string):
2.复合数据类型
array、slice、map、function、pointer、struct、interface、channel.....
*/
//1.布尔类型
var b1 bool
b1 = true
fmt.Printf("%T,%t\n", b1, b1)
b2 := false
fmt.Printf("%T,%t\n", b2, b2)
// 2.整数
var i1 int8
i1 = 100
fmt.Println(i1)
var i2 uint8
i2 = 200
fmt.Println(i2)
var i3 int
i3 = 1000
fmt.Println(i3)
//语法角度: int,int64不认为是同一种类型
//var i4 int64
//i4 = i3 // cannot use i3 (variable of type int) as type int64 in assignment
var i5 uint8
i5 = 100
var i6 byte
i6 = i5
fmt.Println(i5, i6)
var i7 = 100
fmt.Printf("%T,%d\n", i7, i7)
// 浮点
var f1 float32 // 单精度
f1 = 3.14
var f2 float64 // 双精度
f2 = 4.67
fmt.Printf("%T,%.2f\n", f1, f1)
fmt.Printf("%T,%.3f\n", f2, f2)
var f3 = 2.55
fmt.Printf("%T\n", f3)
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# 二、 复合类型(派生类型)
- 1、指针类型(Pointer)
- 2、数组类型
- 3、结构化类型(struct)
- 4、Channel 类型
- 5、函数类型
- 6、切片类型
- 7、接口类型(interface)
- 8、Map 类型
- 01
- AWS NAT-NetWork-Firwalld配置(一)04-09
- 02
- AWS NAT-NetWork-Firwalld配置(二)04-09
- 03
- kubernetes部署minio对象存储01-18