内容简介:使用接口给实现类的变量赋值,例一错误;例二正确。例一:例二:
使用接口给实现类的变量赋值,例一错误;例二正确。
例一:
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复习】解构赋值
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Ajax设计模式
Michael Mahemoff / 杨仁和 / 电子工业出版社 / 2007-5 / 78.00元
★本书荣获LinuxWorld Linux Journal2006年Editors' Choice awards。 ★绝好的一本ajax 高级读物,建议 每个web 程序员都需要买一本,了解什么是真正的好的web设计--网友 [精彩试读一] [精彩试读二] 本书是一本关于复杂Ajax应用的整体架构设计......一起来看看 《Ajax设计模式》 这本书的介绍吧!