go语言 结构体怎么传值,修改值后不影响原来的结构
go语言 结构体怎么传值,修改值后不影响原来的结构
go语言 结构体怎么传值,修改值后不影响原来的结构

张家俊
2025年01月21日
|
浏览 107
答案是在Go语言中,传递结构体时使用值传递。为了确保修改结构体的副本而不影响原始结构体,您可以通过传递指向结构体的指针来实现。这样在函数内部对结构体的修改会影响到原始结构体。以下是一个简单的示例:
复制代码
package main
import "fmt"
type Person struct {
Name string
Age int
}
func modifyPerson(p *Person) {
p.Name = "Alice"
p.Age = 30
}
func main() {
original := Person{Name: "Bob", Age: 25}
fmt.Println("Original Person:", original)
modified := original // 创建原始结构体的副本
modifyPerson(&modified) // 传递指向副本的指针以修改值
fmt.Println("Modified Person:", modified)
fmt.Println("Original Person:", original) // 原始结构体未受影响
}
在上面的示例中,我们定义了一个Person
结构体,然后创建了一个原始结构体original
。我们将其复制到modified
,并将指向modified
的指针传递给modifyPerson
函数以修改副本的值,而不会影响原始结构体。
我要提问
复制内容
分享给好友
AI编程问答网 免责声明:
以上内容除特别注明外均来源于网友提问,AI编程问答网回答,权益归原著者所有;