这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天。
在今天,我们学习了Go语言的语法基础。对于有其他语言编程经验的同学来说应该是很简单的,虽然部分语法有些“反人类”,但是相信只要理解了,熟练运用只是时间问题。所以,这篇文章将来讨论一下,相对于其他语言,Go语言的那些看起来“反人类”的操作。
1. 类的私有公有属性
关于Go语言的导包调用方法或类,它不再像Java一样有private,public等修饰词修饰,而是采用首字母的大小写来规定是否是私公有属性、方法。如果学习过python的面向对象设计那么可能会接受这种方法,毕竟python也是用_来规定,与Go类似,但是与Java相比,就会容易导致很别扭。
2. 类的继承
我们在其他主流语言进行类的继承时,如Java采用extends关键词;python采用()来规定继承的父类。但是Go语言的继承,只需要在结构体中,写出父类结构体的名称就可以,如
type Animals struct {
Color string
age int
}
type Cat struct {
Animals
Type string
}
说实话,这种继承方式我也不能接受,但是也没办法,只能慢慢适应。
3. 接口的实现
在使用接口的时候,Go居然只需要重定义接口内部函数即可,不需要任何修饰。这让我学习的时候在想那他用接口实现的意义是什么,毕竟在学习Java的时候,我记得当时学习的是接口的作用是规范代码(不知道是否记错或者记少了导致自己这个低级发言),但是不得不说,它确实有一丢丢小离谱。如:
type Animal interface {
Sleep()
GetColor() string
GetType() string
}
type Cat struct {
Color string
Type string
}
func (c *Cat) Sleep() {
fmt.Println("this is Cat")
}
func (c *Cat) GetColor() string {
return c.Color
}
func (c *Cat) GetType() string {
return c.Type
}
今天关于GoLang的基础学习的讨论就这些,虽然Go的一些代码有些许不好接受,但是相信,只要坚持学习使用下去,就可以完美接受!(我仿佛在说废话)