GO语言入门 - (三)数据类型

现在需要了解一下GO语言的数据类型。
布尔型 布尔型的值只可以是常量 true 或者 false。
一个简单的例子:
package mainimport "fmt"func main() { // 声明一个布尔型的变量i var i bool = true fmt.Println("打印一个布尔型的变量:i=", i) }

运行结果为:
GO语言入门 - (三)数据类型
文章图片

数字类型 整型 int 和浮点型 float32、float64
Go 语言支持整型和浮点型数字,并且支持复数,其中位的运算采用补码。
package mainimport "fmt"func main() { // 声明一个数字类型的变量i var i int = 100 fmt.Println("打印一个数字类型的变量:i=", i) }

运行结果为:
GO语言入门 - (三)数据类型
文章图片

1. 整数型
序号 类型 描述
1 uint8 无符号 8 位整型 (0 到 255)
2 uint16 无符号 16 位整型 (0 到 65535)
3 uint32 无符号 32 位整型 (0 到 4294967295)
4 uint64 无符号 64 位整型 (0 到 18446744073709551615)
5 int8 有符号 8 位整型 (-128 到 127)
6 int16 有符号 16 位整型 (-32768 到 32767)
7 int32 有符号 32 位整型 (-2147483648 到 2147483647)
8 int64 有符号 64 位整型 (-9223372036854775808 到 9223372036854775807)
2. 浮点型
序号 类型 描述
1 float32 IEEE-754 32位浮点型数
2 float64 IEEE-754 64位浮点型数
3 complex64 32 位实数和虚数
4 complex128 64 位实数和虚数
3. 其他数字类型
序号 类型 描述
1 byte 类似 uint8
2 rune 类似 int32
3 uint 32 或 64 位
4 int 与 uint 一样大小
5 uintptr 无符号整型,用于存放一个指针
字符串类型 字符串就是一串固定长度的字符连接起来的字符序列。
Go 的字符串是由单个字节连接起来的。
Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本。
package mainimport "fmt"func main() { // 声明一个字符串类型a和一个字符串类型b var a = "Hello" var b = " World" fmt.Println("打印a + b的值为:", a + b) }

运行结果为:
GO语言入门 - (三)数据类型
文章图片

零值 零之其实就是一个变量的默认值
如果我们声明了一个变量,但是没有对其进行初始化,那么Go语言会自动初始化其值为对应类型的零值
package mainimport "fmt"func main() { // 声明各种类型的数据 var a int var b float64 var c bool var d string fmt.Println("打印a的值为:", a) fmt.Println("打印b的值为:", b) fmt.Println("打印c的值为:", c) fmt.Println("打印d的值为:", d) }

运行结果为:
GO语言入门 - (三)数据类型
文章图片

派生类型 包括:
  • (1) 指针类型(Pointer)
  • (2) 数组类型
  • (3) 结构化类型(struct)
  • (4) Channel 类型
  • (5) 函数类型
  • (6) 切片类型
  • (7) 接口类型(interface)
  • (8) Map 类型
特殊说明 1. 这里可以不声明变量的类型,让Go自己去推导;
var i = 100;

2. 也可以一次性声明多个变量
package mainimport "fmt"func main() { // 声明一个数字类型的变量a,一个布尔类型的变量b var ( a = 200 b = false ) fmt.Println("打印a的值为:", a, "; 打印b的值为:", b) }

运行结果为:
GO语言入门 - (三)数据类型
文章图片

3. 变量的简短声明 Go语言提供了变量的简短声明 :=
变量名:=表达式
package mainimport "fmt"func main() { // 简短声明各种类型的数据 a := 10 b := 10.01 c := true d := "简短声明" fmt.Println("打印a的值为:", a) fmt.Println("打印b的值为:", b) fmt.Println("打印c的值为:", c) fmt.Println("打印d的值为:", d) }

运行结果为:
GO语言入门 - (三)数据类型
文章图片

4. 常量 常量用const修饰,被修饰的变量不能被修改
package mainimport "fmt"func main() { // 声明一个常量 const a = 10 fmt.Print("首次打印a的值为:", a) a = 100 fmt.Println("再次打印a的值为:", a) }

运行结果为:
GO语言入门 - (三)数据类型
文章图片

运行报错,常量不能修改。
5. iota iota是一个常量生成器,他可以用来初始化相似规则的常量,避免重复的初始化
package mainimport "fmt"func main() { // 声明几个常量 const ( a = iota + 1 b c d ) fmt.Print("打印四个值为:", a, b, c, d) }

运行结果为:
GO语言入门 - (三)数据类型
文章图片

个人博客地址
【GO语言入门 - (三)数据类型】http://www.zhouzhaodong.xyz/

    推荐阅读