内容简介:使用接口给实现类的变量赋值,例一错误;例二正确。例一:例二:
使用接口给实现类的变量赋值,例一错误;例二正确。
例一:
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()) //输出:韩梅梅
}
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Spring in Action
Craig Walls / Manning Publications / 2011-6-29 / USD 49.99
Spring in Action, Third Edition has been completely revised to reflect the latest features, tools, practices Spring offers to java developers. It begins by introducing the core concepts of Spring and......一起来看看 《Spring in Action》 这本书的介绍吧!