内容简介:使用接口给实现类的变量赋值,例一错误;例二正确。例一:例二:
使用接口给实现类的变量赋值,例一错误;例二正确。
例一:
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复习】解构赋值
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
推荐系统
[奥地利] Dietmar Jannach、Markus Zanker、Alexander Felfernig、Gerhard Friedrich / 蒋 凡 / 人民邮电出版社 / 2013-6-25 / 59.00元
编辑推荐: 通过对本书的学习,读者不仅可以全面系统地了解该领域的基础原理,还能试验如何搭建一套真正的推荐系统。 —— 百度主任架构师、百度技术委员会主席 廖若雪 本书比较全面地介绍了推荐系统涉及的相关知识点,很适合对于推荐系统感兴趣的相关人员作为入门教程,目前能够系统全面介绍相关技术的中文书籍还显得匮乏,相信这本译著对于缓解这种情况大有裨益。 ——新浪微博数据挖掘技术专家 ......一起来看看 《推荐系统》 这本书的介绍吧!