Go语言 -- 接口和指针语法糖

本文介绍了Go语言中的接口和指针概念。指针使用类似于C语言,但更简洁,被批评为“语法糖”。通过实例展示了接口的定义和实现,强调了指针接收器在方法调用中的影响。文章最后提出了关于指针接口转换的疑惑,引发思考。
摘要由CSDN通过智能技术生成

“我不想吹go怎么先进高级,相反就目前为止我觉得它有点莫名其妙”

Note:没使用过c语言指针的建议直接找教程看,否则可能越看越糊涂。

指针和语法糖

go语言采用了C语言中指针的概念,简单来说指针就是变量的地址,在C语言中通过[*ptr.]或者[ptr->] 的方式来使用,但是在Go语言中把这两种方式都简化成[ptr.]了,与普通变量一样,看过一篇文章说这是go提供的一个语法糖,示例:

func main() {
	var ptr = &ConsoleWriter{}// &号相当于new,返回一个ConsoleWriter的指针
	//调用Write()方法
	ptr.Write("test")// ptr.其实是个语法糖,相当于c里头的 ptr->Write("test")
}

PS: 个人表示对这种“语法糖”不很认同,谁会懒到要省下那个*号或者->符号么?

接口

以日志系统的部分代码为例。
接口定义

// 定义一个接口LogWriter,只有一个Write方法
type LogWriter interface {
	Write(interface{})error
}

接口实现

// 新建一个结构体并实现LogWriter接口

//结构体 
type ConsoleWriter struct {
   attr interface{} // 无特殊意义,随便填的属性,演示用
}

// 接口实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值