一个游离于山间之上的Java爱好者 | A Java lover living in the mountains
如果Type是具体某个类型,类型断言会检查 varl的动态类型是否等于具体类型 Type。如果检查成功,类型断言返回的结果是 varl 的动态值,其类型是 Type。 - 如果 Type 是接口类型,类型断言会检查 varl 的动态类型是否满足
Type
varl
要想实现Go中的接口,类型实现接口方法集的方法,其类型实现的方法签名必须要与接口中的方法集中方法签名一样。 类型不需要显式声明它实现了某个接口:接口被隐式地实现。多个类型可以实现同一个接口。
Go
Go中的方法是一种特殊的函数,以实现类型与函数进行绑定
Go中的结构体与c/c++语言中是差不多,然而对没有接触过c/c++语言的话,对在看到结构体这一复合类型是新鲜事物。
c/c++
复合类型
函数作为另一个函数的形参,这就是Go当中的回调函数。
在前面几篇文章,我们一直在使用Println、Printf函数,你可能没有特别注意到,就是我们可以传入任意参数。而这种可以接受任意实参的函数,函数的形参极有可能是可变参数,使用...type可声明可变参数,但必须是形参列表的最后
Println、Printf
可变参数
...type
一上来乍一看,函数变量?这究竟是什么意思呢?你函数就函数,变量便是变量,这两者搞在一块,到底是几个意思呢? 其实啊,在Go当中,函数也是一种类型,既然是类型,那就可以向其它类型一样,给变量定义类型啊!而这个类型是函数,所以函数类型
函数
函数类型
在前面几篇文章,接触到的最多的是main函数。Go 如同c/c++语言一样,对于声明函数也有属于自己的一套规则。
main
在提到关键字goto,想必很多人都心有余悸吧,毕竟goto可是编程语言界破坏代码可读性的罪魁祸首啊!以至于像c/c++或类 c 的编程语言,都将goto作为保留关键字,不建议使用,但如果你非要使用,谁人可阻止呢?
goto
相较于c/c++等的switch case,Go对switch做了很大改进,case与case之间是不需要写上break,也能跳出当前case语句,而且,switch表达式可以是任何类型的噢!
switch case
switch
case
break