序言
Go可是说是近几年比较火的语言了,目前版本已经到了1.13,如果说有其他语言的基础,学习Go还是挺简单的。这篇文章主要是总结一些,和其他语言可能会不一样的地方。
多返回值
之前如果一个方法像返回多个值的话,也是有相应的办法,比如 Python 和 Javascript
- Python
def fc()
return (1,"2",3);
v1,v2,v3 = fc();
- Javascript
function fc(){
return {1,"2",3}
}
let {v1,v2,v3} = fc()
再来看看Go的多返回值例子
func fc() (int, string, int) {
return 1, "2", 3
}
在静态类型的帮助下,整个方法相对清晰一些,多返回值在Go程序中会经常遇到,尤其当方法要同时返回一个错误的时候。
自带的格式化代码方法
Go里面提供了一个go fmt
,装完Go环境以后,并且配置好环境变量以后,你可以使用go fmt main.go
来格式化代码
升级版的if
一般用if
if 1 == 1 {
}
为什么说go的if是升级过的呢
if count := 10; count < 10 {
}
代码中可以在if中进行赋值操作,其实还可以进行函数调用,数学运算。
使用go module 管理依赖
这篇文章在编写的时候go 1.13已经发布了,在go 1.11中带来了新的包管理方式go module。
在1.11之前,我用过的是dep,这种方式还是脱离不了go path,也就是你需要把项目放在go path下。
使用go module就可以脱离go path,你可以把你的项目随意的放在你想放的地方。
你可以参照这篇文章来学习go module。
没有while循环
在我所接触过Go以外的的计算机高级语言中,都会提供两种循环,for 和 while。
Go的for循环是可以不带参数的,如下
for {
}
这时候就是一个死循环了,如果带参数的话,和大多数语言是一样的
for i := 1; i < 10; i++ {
}
没有 ++i,--i
这个的话好像也无伤大雅。
没有三元运算符
没有三元运算符这个貌似挺难受的,对于我这种习惯偷懒的人来说,意味着要用长长的if else来替代,这是写代码的角度。