首页 > 解决方案 > 方法打印正确的数据,但在 Go 中返回未经编辑的数据

问题描述

这是我学习 Go 的第二天,我正在努力更好地理解结构和方法,所以如果这个问题有点基础,请提前道歉。为什么这个程序在方法内部打印编辑过的数据,但是当它回到main时,打印的是传递给结构体的原始数据?

package main
import ( "fmt" )

type Person struct{
    firstName string
    lastName string
}

func (p Person) updateName(newName string) string{
    p.firstName = newName
    fmt.Println(p.firstName, p.lastName) //prints "Jane Doe"
    return newName + " " + p.lastName
}

func main() {
    p := Person{"John", "Doe"}
    p.updateName("Jane")
    fmt.Println(p) //prints "{John Doe}"
}

提前致谢!

标签: gomethods

解决方案


推荐阅读