📅  最后修改于: 2023-12-03 15:08:37.207000             🧑  作者: Mango
在 Golang 中,我们可以使用结构体来组织数据。结构体是一种复合数据类型,可以包含多个不同类型的成员变量。我们可以通过实例化结构体来创建一个具体的结构体对象,然后通过指针地址运算符来获取该对象的地址。
要实例化结构体,我们首先需要定义一个结构体类型。结构体定义的语法如下:
type StructName struct {
field1 type1
field2 type2
// ...
}
其中 StructName
是结构体的名称,field1
、field2
等是结构体的成员变量名,type1
、type2
等是成员变量的类型。
现在我们来实例化一个结构体对象,示例如下:
package main
import "fmt"
type Person struct {
Name string
Age int
Gender string
}
func main() {
var p Person
p.Name = "John"
p.Age = 30
p.Gender = "Male"
fmt.Printf("Name: %s\nAge: %d\nGender: %s\n", p.Name, p.Age, p.Gender)
}
在上面的示例中,我们定义了一个 Person
结构体类型,包含 Name
、Age
和 Gender
三个成员变量。然后我们使用 var
关键字来声明一个 p
变量,并将其赋值为一个空的 Person
结构体对象。接着我们设置 p
的成员变量的值,最后打印出 p
的信息。
输出结果为:
Name: John
Age: 30
Gender: Male
要获取结构体对象的地址,我们需要使用指针地址运算符 &
。该运算符返回一个指向目标变量的指针。
我们可以使用下面的代码片段来演示如何获取结构体对象的地址:
package main
import "fmt"
type Person struct {
Name string
Age int
Gender string
}
func main() {
var p Person
p.Name = "John"
p.Age = 30
p.Gender = "Male"
fmt.Printf("Name: %s\nAge: %d\nGender: %s\n", p.Name, p.Age, p.Gender)
pp := &p
fmt.Printf("p's memory address: %p\n", pp)
}
在上面的示例中,我们定义了一个 Person
结构体类型,包含 Name
、Age
和 Gender
三个成员变量。然后我们使用 var
关键字来声明一个 p
变量,并将其赋值为一个空的 Person
结构体对象。接着我们设置 p
的成员变量的值,最后打印出 p
的信息。
然后我们定义了一个 pp
变量,并使用指针地址运算符 &
获取了 p
的地址,并将其赋值给了 pp
。最后我们打印出了 pp
的值,即 p
的地址。
输出结果为:
Name: John
Age: 30
Gender: Male
p's memory address: 0xc000086000
在 Golang 中,我们可以使用结构体来组织数据。要实例化结构体,我们首先需要定义一个结构体类型,然后使用 var
关键字来声明一个变量并将其赋值为一个空的结构体对象。要获取结构体对象的地址,我们可以使用指针地址运算符 &
。