1、布尔型
布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true
2、数值型
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.2 浮点型
-
float32
IEEE-754 32位浮点型数
-
IEEE-754 64位浮点型数
-
complex64
32 位实数和虚数
-
complex128
64 位实数和虚数
2.3 其它
-
byte
类似 uint8
-
rune
类似 int32
-
uint
32 或 64 位
-
int
与 uint 一样大小
-
uintptr
无符号整型,用于存放一个指针
3、字符串
字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。Go语言的字符串的字节使用UTF-8编码标识Unicode文本
var str string
str = "Hello World"
4、数据类型转换:Type Convert
语法格式:Type(Value)
常数:在有需要的时候,会自动转型
变量:需要手动转型 T(V)
注意点:兼容类型可以转换
5、复合类型(派生类型)
1、指针类型(Pointer)
2、数组类型
3、结构化类型(struct)
4、Channel 类型
5、函数类型
6、切片类型
7、接口类型(interface)
8、Map 类型
6、数据类型详细代码案例
6.1整数类型(Integer Types)
- 有符号整数类型:可以表示正数、负数和零,例如
int
、int8
、int16
、int32
、int64
。 - 无符号整数类型:仅能表示非负数(包括零),例如
uint
、uint8
、uint16
、uint32
、uint64
。
go :
package main
import "fmt"
func main() {
// 有符号整数类型
var num1 int = 42
fmt.Println(num1)
// 无符号整数类型
var num2 uint = 10
fmt.Println(num2)
}
python:
# 有符号整数类型
num1 = 42
print(num1)
# 无符号整数类型(Python没有无符号整数类型)
# 可以使用大整数类型(例如long)表示大于int范围的非负整数
num2 = 10
print(num2)
6.2 浮点数类型(Floating-Point Types)
- 单精度浮点数:使用
float32
类型表示,可表示较小范围内的小数。 - 双精度浮点数:使用
float64
类型表示,可表示更大范围内的小数。
go:
package main
import "fmt"
func main() {
// 单精度浮点数
var num1 float32 = 3.14
fmt.Println(num1)
// 双精度浮点数
var num2 float64 = 3.14159
fmt.Println(num2)
}
python:
# 单精度浮点数(Python没有单精度浮点数类型)
# 使用float表示浮点数
num1 = 3.14
print(num1)
# 双精度浮点数
num2 = 3.14159
print(num2)
6.3 布尔类型
- 布尔类型:有两个取值,
true
表示真,false
表示假。
go:
package main
import "fmt"
func main() {
var isTrue bool = true
fmt.Println(isTrue)
}
python:
isTrue = True
print(isTrue)
6.4字符串
- 字符串类型:表示由字符组成的文本序列。
go:
package main
import "fmt"
func main() {
var message string = "Hello, World!"
fmt.Println(message)
}
python:
message = "Hello, World!"
print(message)