内容简介:使用接口给实现类的变量赋值,例一错误;例二正确。例一:例二:
使用接口给实现类的变量赋值,例一错误;例二正确。
例一:
package main import ( "fmt" ) //声明一个接口 type IUser interface { GetName() string SetName(name string) } //声明一个User的结构去实现接口 type User struct { Name string } func (a User) GetName() string { return a.Name } func (a User) SetName(name string) { a.Name = name } func main() { var a IUser //声明a的类型是IUser类型 a = User{"李磊"} //给接口变量赋值 fmt.Println(a.GetName()) //输出:李磊 a.SetName("韩梅梅") fmt.Println(a.GetName()) //输出:李磊,这里实际想输出的是"韩梅梅" }
例二:
package main import ( "fmt" ) //声明一个接口 type IUser interface { GetName() string SetName(name string) } //声明一个User的结构去实现接口 type User struct { Name string } func (a User) GetName() string { return a.Name } //要改变对象的值必须用指针 func (b *User) SetName(name string) { b.Name = name } func main() { var a IUser //声明a的类型是IUser类型 a = &User{"李磊"} //a是指针了 fmt.Println(a.GetName()) //输出:李磊 a.SetName("韩梅梅") fmt.Println(a.GetName()) //输出:韩梅梅 }
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- CCS2.1 - 属性赋值,层叠(Cascading)和继承
- ruby-on-rails – 在Rails中编写可继承的属性与基本赋值
- 少说话多写代码之Python学习023——赋值语句的用户02(链式赋值、增量赋值)
- 理解Golang多重赋值
- ES6 解构赋值
- 【ES6复习】解构赋值
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。