在本教程中,我们将学习Go语言中可用的所有基本数据类型。在本教程结束时,您应该熟悉该语言中提供的各种不同类型,并希望了解如何在您自己的Go程序中使用这些类型。

ps:本节课程很无聊,但是不可或缺。
##数据类型 Go编程语言中有4种不同类型的类型
- 基本类型 我们将在本教程中介绍的内容
- 聚合类型 数组和结构
- 引用类型 指针和切片
- 接口类型 标准接口
##整型
简单点,直接在代码里注释讲解吧
// 所有数字类型默认为0
// 无符号的8位整型
// 可存储: 0 to 255
var myint uint8
// 有符号的8位整型
// 可存储: -127 to 127
var myint int8
// 无符号的16位整型
var myint uint16
// 有符号的16位整型
var myint int16
// 无符号的32位整型
var myint uint32
// 带符号的32位整型
var myint int32
// 无符号的64位整型
var myint uint64
// 带符号的64位整型
var myint int64
存储超过大小的值编译会无法通过。初始存储未超过大小,但是运行中溢出了,可能会出现其它结果:
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello World")
var myint int8
for i := 0; i < 129; i++ {
myint += 1
}
fmt.Println(myint) // 打印输出 -127
}
这是你编写程序时需要注意的!
##标准int类型 如果在定义整数值时用这么冗长写法,肯定麻烦。大多数情况下,可以默认为int。此int数据类型通常为32位或64位,具体取决于您的操作系统是32位系统还是64位系统。
为简单起见,最好默认使用此数据类型,您会发现这是使用最广泛的数据类型。
###类型转换 在进行一些运算时,需要进行转换,因为不同类型是不能进行运算的。上代码:
var men uint8
men = 5
var women int16
women = 6
var people int
// 这会引发编译错误
people = men + women
// 转换为以下标准格式才能编译执行
people = int(men) + int(women)
##浮点数类型
接下来,我们来说浮点数。它们有两种不同的大小,float32或float64。比int64大的数字,也可以用他们来替代。
var f1 float32
var f2 float64
看看如何声明和使用浮点数:
var maxFloat32 float32
maxFloat32 = 16777216
fmt.Println(maxFloat32 == maxFloat32+10) // 有其它语言基础的同学,通常会期望这会返回false
// 它返回true
fmt.Println(maxFloat32+10) // 16777216
fmt.Println(maxFloat32+2000000) // 16777216
###将float和int互相转换
// 从int转换为float
var myint int
myfloat := float64(myint)
// 从float转换为int
var myfloat2 float64
myint2 := int(myfloat2)
##复数 与浮点数据类型非常相似,有两种不同的大小,你可以选择complex64或complex128
##Booleans bool,表示真或假。让我们看看如何在我们的Go程序中使用它:
var amazing bool
amazing = true
if amazing {
subscribeToChannel()
}
很简单,但是如果我们想在程序中做一些布尔逻辑运算会发生什么?好吧,使用||和&&来实现或和与运算。
var isTrue bool = true
var isFalse bool = false
// AND
if isTrue && isFalse {
fmt.Println("两个条件都必须是真")
}
// OR
if isTrue || isFalse {
fmt.Println("只有一个条件需要为True")
}
##Strings 字符串 Go语言中的字符串就是我们称之为字符切片的字符串。我们可以使用string声明一个新的字符串变量:
var myName string
myName = "Michael Yang"
##常量
常量是Go语言中的最终(final)基本数据类型。它们允许我们指定在程序执行过程中不会改变的不可变值。
const meaningOfLife = 32
##小结 本节把基本数据类型过了一边,不能再简单了,要不就说不清了。
最后修改于 2019-07-29