嗨,关于Golang结构体赋值的问题,我可以为您提供以下解答。
在Golang中,可以通过以下几种方式进行结构体赋值:
- 直接赋值:使用“=”符号直接将一个结构体变量的值赋给另一个结构体变量。
type Person struct {
Name string
Age int
}
func main() {
var p1 = Person{"Tom", 18}
var p2 Person
p2 = p1 // 直接将p1的值赋给p2
fmt.Println(p2) // 输出 {Tom 18}
}
- 指针赋值:使用“&”符号获取结构体变量的指针,并将指针赋给另一个结构体指针变量。
type Person struct {
Name string
Age int
}
func main() {
var p1 = &Person{"Tom", 18} // 获取p1的指针
var p2 *Person
p2 = p1 // 将p1的指针赋给p2
fmt.Println(*p2) // 输出 {Tom 18}
}
```
3. 使用new函数创建结构体并进行初始化:
```go
type Person struct {
Name string
Age int
}
func main() {
var p1 = new(Person)
*p1 = Person{"Tom", 18} // 对p1进行初始化操作
fmt.Println(*p1) // 输出 {Tom 18}
}
以上就是几种Golang结构体赋值的方式,希望能对您有所帮助。如果您还有其他问题,欢迎随时向我提问。




