go语言中结构体是一个值类型,不是一个引用类型和既实现接口A,又实现接口B
结构体是一个值类型,不是一个引用类型
设置值和获取值
package main
import "fmt"
type Animaler interface {
SetName(name string)
getName() string
}
type Dog struct {
Name string
}
func (d *Dog) SetName(name string) {
d.Name = name
}
// 指针类型的接收者
func (d *Dog) getName() string {
return d.Name
}
func main() {
d := &Dog{
Name: "旺财",
}
var d1 Animaler = d
d1.SetName("小黑狗")
fmt.Println(d1.getName())
}
既实现接口A,又实现接口B
package main
import "fmt"
// 定义一个接口 Animaler1
type Animaler1 interface {
SetName(string)
}
// 定义一个接口 Animaler2
type Animaler2 interface {
GetName() string
}
// 定义一个结构体 Dog
type Dog struct {
Name string
}
// 指针类型的接收者
func (d *Dog) SetName(name string) {
d.Name = name
}
// 值类型的接收者
func (d Dog) GetName() string {
return d.Name
}
func main() {
d := &Dog{
Name: "旺财",
}
// 既要实现Animaler1接口,又要实现Animaler2接口
var d1 Animaler1 = d // d1实现Animaler1接口
var d2 Animaler2 = d // d2实现Animaler2接口
d1.SetName("小黑狗")
fmt.Println(d2.GetName())
}
作者:流年少年
出处:https://www.cnblogs.com/ishoulgodo/
本文版权归作者所有,欢迎转载,未经作者同意须保留此段声明,在文章页面明显位置给出原文连接
如果文中有什么错误,欢迎指出。以免更多的人被误导。
出处:https://www.cnblogs.com/ishoulgodo/
想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,或者关注博主,在此感谢!
万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主(っ•̀ω•́)っ✎⁾⁾!
想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!
支付宝
微信
如果文中有什么错误,欢迎指出。以免更多的人被误导。

浙公网安备 33010602011771号