简介:
在Go语言中,数据结构体可以分为四种类型:基础类型、聚合类型、引用类型和接口类型。下面是对这四种类型的介绍:
其中基础类型比较简单就不过多介绍,重点是其他几种类型
在 Go 语言中,指针是一种用于引用其他变量的变量。通过使用指针,你可以间接访问或修改指向变量的值。
var x int = 10
var p *int = &x
在上面的示例中,x是一个整数变量,而p是一个指向整数的指针变量。通过&x,将x的地址赋值给p。
fmt.Println(*p)
通过*p,可以获取p所指向变量x的值。
*p = 20
通过*p = 20,将 20 赋值给p所指向变量x。
需要注意的是,使用指针时要确保指针指向的变量类型与指针的类型相匹配,否则会导致编译错误。
在 Go 语言中,结构体(struct)是一种用户自定义的数据类型,可以用来组织多个不同类型的数据成员。
type Person struct {
Name string
Age int
}
在上面的示例中,定义了一个名为Person的结构体,它包含了两个数据成员:Name(字符串类型)和Age(整数类型)。
p := Person{
Name: "Alice",
Age: 25,
}
fmt.Println(p.Name)
fmt.Println(p.Age)
p.Age = 30
fmt.Println(p.Age)
type Address struct {
Country string
City string
}
type Person struct {
Name string
Age int
Address
}
在上面的示例中,Person结构体包含了一个嵌套的Address结构体。
type Person struct {
Name string
Age int
}
func (p Person) SayHello() {
fmt.Println("Hello, my name is", p.Name)
}
在上面的示例中,为Person结构体实现了一个名为SayHello的方法。
类比其他语言,struct相当于java中的类,区别是在go语言中struct中只写变量,并不写方法,具体含有的方法是根据方法在其他地方添加给他,具体看方法的介绍
在 Go 语言中,映射(map)是一种无序的键值对数据结构。它用于存储一组键值对,其中键可以是任何类型,而值可以是任何类型。
var m map[string]int
在上面的示例中,创建了一个名为m的空映射,其中键的类型为字符串,值的类型为整数。
m["key"] = value
value, ok := m["key"]
delete(m, "key")
count := len(m)
需要注意的是,映射中的键必须是可哈希的,因为映射是基于哈希表实现的。这意味着你不能使用函数、切片或映射作为映射的键。
今天先更新这么多,下次补全切片与数组,channel,接口等。