如何在Golang中使用new关键字实例化Struct?
在Golang中,我们可以使用new关键字来实例化一个Struct类型的变量。实例化一个Struct变量可以让我们在程序中使用该类型的变量,并且给这个变量赋值。
什么是Struct?
Sturct是一种复合类型(Composite type),它是由一些变量组合而成的数据类型。Struct可以用来表示一个实体或相关属性的集合。Struct中的变量被称为字段(field)。我们可以将Struct看作是一个自定义类型,它有自己的字段,每个字段都有自己的类型和名字。
下面是一个简单的Struct的定义和实例:
type Person struct {
Name string
Age int
}
func main() {
p1 := Person{"Bob", 20}
p2 := Person{Name: "Alice", Age: 25}
}
在上面的代码中,我们定义了一个名为Person的Struct,它有两个字段:Name和Age。使用这个定义,我们可以创建两个Person类型的变量p1和p2,并且给它们赋予不同的值。p1的Name字段为”Bob”,Age字段为20;p2的Name字段为”Alice”,Age字段为25。
如何使用new关键字实例化Struct?
我们可以使用new关键字来实例化一个Struct类型的变量。new函数的作用是创建一个新的变量并返回该变量的地址。对于Struct类型的变量,我们必须使用&符号将其地址返回。
下面是一个使用new关键字实例化Struct的例子:
type Person struct {
Name string
Age int
}
func main() {
p := new(Person)
p.Name = "Bob"
p.Age = 20
}
在上面的代码中,我们定义了一个名为Person的Struct,并使用new函数实例化了一个变量p。然后我们给p的Name字段赋值为”Bob”,Age字段赋值为20。需要注意的是,在给一个使用new函数实例化的变量的字段赋值时,我们需要使用”.”操作符来访问该字段。
示例代码
为了更好地理解如何在Golang中使用new关键字实例化Struct,我们来看一个更完整的例子。
package main
import "fmt"
type Student struct {
Name string
Age int
Grade int
}
func main() {
s := new(Student)
s.Name = "Tom"
s.Age = 18
s.Grade = 12
fmt.Printf("Name: %s, Age: %d, Grade: %d", s.Name, s.Age, s.Grade)
}
在这个例子中,我们定义了一个名为Student的Struct类型。我们在main函数中使用new关键字实例化了一个Student类型的变量s,并给它的Name、Age、Grade字段赋值。最后,我们使用Printf函数打印出了s的每个字段的值。
结论
在Golang中,我们可以使用new关键字来实例化一个Struct类型的变量。实例化一个Struct变量可以让我们在程序中使用该类型的变量,并且给这个变量赋值。需要注意的是,在给一个使用new函数实例化的变量的字段赋值时,我们需要使用”.”操作符来访问该字段。