栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么SetAge()方法不能正确设置年龄?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么SetAge()方法不能正确设置年龄?

您的函数接收者是值类型,因此它们被复制到您的函数范围中。为了在函数的生存期内影响您收到的类型,您的接收者应该是指向您类型的指针。见下文。

type NamedThing interface {    GetName() string    GetAge()  int    SetAge(age int)}type baseThing struct {   name string   age  int}func (t *baseThing) GetName() string {   return t.name}func (t *baseThing) GetAge() int {   return t.age}func (t *baseThing) SetAge(age int) {   t.age = age}type Person struct {   baseThing}func main() {    p := Person{}    p.baseThing.name = "fred"    p.baseThing.age = 21    fmt.Println(p)    p.SetAge(35)    fmt.Println(p)}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/399623.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号