bool
string
int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
byte
rune
float32 float64
complex64 complex128
| 类型 | 描述 |
|---|---|
| bool | 布尔型(bool):可以是true或false。 |
| string | 字符串类型:表示文本数据。 |
| int | 整型:根据平台不同,可以是32位或64位。 |
| int8 | 8位整型:取值范围为-128到127。 |
| int16 | 16位整型:取值范围为-32768到32767。 |
| int32 | 32位整型:取值范围为-2147483648到2147483647。 |
| int64 | 64位整型:取值范围为-9223372036854775808到9223372036854775807。 |
| uint | 无符号整型:根据平台不同,可以是32位或64位。 |
| uint8 | 8位无符号整型:取值范围为0到255。 |
| uint16 | 16位无符号整型:取值范围为0到65535。 |
| uint32 | 32位无符号整型:取值范围为0到4294967295。 |
| uint64 | 64位无符号整型:取值范围为0到18446744073709551615。 |
| uintptr | 用于保存指针的无符号整型。 |
| byte | uint8的别名。 |
| rune | int32的别名,代表一个Unicode编码点。 |
| float32 | 32位浮点数类型。 |
| float64 | 64位浮点数类型。 |
| complex64 | 64位复数类型,由两个32位浮点数表示实部和虚部。 |
| complex128 | 128位复数类型,由两个64位浮点数表示实部和虚部。 |
与其他主要编程语言的差异
package main
import "testing"
func TestType(t *testing.T) {
var a int = 1
var b int64 = 2
// 这行代码会编译错误,因为无法完成从int到int64的隐式转换, 不允许将一个int类型的变量a赋值给int64类型的变量b。必须显式地将a转换为int64类型,才能赋值给b。
// b = a
// 必须显式转换类型
b = int64(a)
t.Log(a, b)
}
math.MaxInt64:这是int64类型的最大值,即9223372036854775807。math.MaxFloat64:这是float64类型的最大值,即1.8e308。math.MaxUint32:这是uint32类型的最大值,即4294967295。这些值是在math包中定义的,它们可以用于比较和限制数值的范围,以防止溢出或下溢。
Go语言指针主要包含两个重要概念:指针和切片
与其他主要编程语言的差异
package type_test
import "testing"
type MyInt int64
func TestPoint(t *testing.T) {
a := 1
aPtr := &a //创建了一个指向a的指针aPtr
//aPtr = aPtr + 1
t.Log(a, aPtr)
t.Logf("%T %T", a, aPtr) //打印它们的类型
}
func TestString(t *testing.T) {
var s string
t.Log("*" + s + "*") //初始化零值是“”
t.Log(len(s)) //s的值为默认的空字符串。打印s的长度,应为0。
}
学习Go语言主要是多练,多找些代码段写写,不懂可以私聊咨询。