登录
首页 >  Golang >  Go问答

go 语言中的一个语法

来源:SegmentFault

时间:2023-02-24 12:58:24 419浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《go 语言中的一个语法》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下go,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

var _ HelloInter = (*Cat)(nil)

type HelloInter interface {
    Hello() string
}

type Cat struct {
    HelloInter
    name string
}

func (c *Cat) Hello() string {
    return c.name + "miaomiao"
}

其中

var _ HelloInter = (*Cat)(nil)
这行代码是啥意思呢?

正确答案

先说下划线。

var s string = "hello world";

这是正常声明一个变量,

s
是变量名,
string
是变量类型,等号后面是赋值。

如果我们后面不需要访问这个变量、只是需要定义(常见于丢弃函数的返回值),那么就用下划线占位。

而原题等号后面的赋值就是一个普通的指针类型强转。


这句代码其实在运行时不起到任何作用,而是一种编译时的类型防守策略。如果你的

Cat
没有实现
HelloInter
,那么这句代码在编译时就会报错,这样你就知道了这里的实现是有问题的,可能你修改了接口忘了同步修改其子类,结果等到运行时才能知道有问题就为时已晚。

而之所以用下划线占位,就因为确实不需要访问这个变量,只需要看强转能不能编译通过。

理论要掌握,实操不能落!以上关于《go 语言中的一个语法》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表