Go 是一门强类型语言,它的数据类型决定了程序的能力和表现。在本篇文章中,我们将从零开始学习 Go 的数据类型,包括基本数据类型、复合数据类型和自定义数据类型。
基本数据类型
Go 中的基本数据类型包括布尔型、数字型和字符串型。布尔型只有两个值:true 和 false。数字型包括整型和浮点型,其中整型又分为有符号整型和无符号整型,浮点型包括单精度浮点型和双精度浮点型。字符串型是 Unicode 字符序列,可以使用双引号或反引号表示。
下面是一些基本数据类型的演示代码:
package main
import "fmt"
func main() {
var b bool = true
fmt.Println(b)
var i int = 123
fmt.Println(i)
var ui uint = 456
fmt.Println(ui)
var f float32 = 3.14
fmt.Println(f)
var d float64 = 3.1415926535
fmt.Println(d)
var s string = "Hello, world!"
fmt.Println(s)
}
复合数据类型
Go 中的复合数据类型包括数组、切片、字典和结构体。数组是一组相同类型的值的集合,长度固定不变。切片是一个动态数组,长度可变,可以进行添加、删除和修改操作。字典是一组键值对的集合,键和值可以是任何类型。结构体是一组不同类型的值的集合,可以自定义字段名。
下面是一些复合数据类型的演示代码:
package main
import "fmt"
func main() {
var a [3]int
a[0] = 1
a[1] = 2
a[2] = 3
fmt.Println(a)
var b []int = []int{1, 2, 3}
b = append(b, 4)
fmt.Println(b)
var c map[string]int = map[string]int{"a": 1, "b": 2, "c": 3}
delete(c, "b")
fmt.Println(c)
type person struct {
name string
age int
}
var d person = person{name: "Alice", age: 18}
fmt.Println(d)
}
自定义数据类型
Go 中的自定义数据类型包括结构体类型、接口类型和函数类型。结构体类型在上面的复合数据类型中已经介绍过了。接口类型是一组方法的集合,可以为不同类型的值提供统一的操作接口。函数类型是一种函数签名的别名,可以方便地传递函数作为参数或返回值。
下面是一些自定义数据类型的演示代码:
package main
import "fmt"
type animal interface {
move() string
}
type cat struct {
name string
}
func (c cat) move() string {
return "cat " + c.name + " is moving"
}
type add func(int, int) int
func addFunc(x int, y int) int {
return x + y
}
func main() {
var a animal = cat{name: "Tom"}
fmt.Println(a.move())
var b add = addFunc
fmt.Println(b(1, 2))
}
总结
在本篇文章中,我们介绍了 Go 的基本数据类型、复合数据类型和自定义数据类型,并演示了一些代码。学习数据类型是掌握 Go 编程的基础,希望本篇文章可以帮助你更好地理解 Go 的数据类型。