毕业之前,每个月津津乐道的便是编程语言排行榜。最留意前排坐的几位,但是还会去注意下以前没有听说过的各种语言。现在工作了,只是偶尔会想起来去瞅两眼,也不会再为语言的排名情况想太多。最近,公司突然成了了一个要以go语言为开发语言的小组,我平时可能工作太清闲,在组内也起不了大作用,便被抽调过来凑数了。现在才知道,原来改bug的日子是多么美好。虽然我不喜欢“前端开发”这几个字,但怎么说也稍微有些基础,平时遇到问题也能很快找到突破口。现在,是各种没有听说过,各种学习啊。那也是没有办法的事情啊。希望通过这段时间的学习改掉我拖拉不努力的坏习惯吧。老大说了,多记点笔记,总归还是极好地。(呵呵,甄嬛传看多了,我记不住原话了,反正是这个意思)

闲话少说,开始记录今天的学习进度。控制语句、数组的基础算是看完了,很多小程序也都实现了一下。深入一些的,还有一些需要谨记的特殊情况还没有认真看。反正这些电子书我都打算多翻阅几遍的。

     

大致的程序结构便是如此,要有package,导入包。最让人别扭的还是该有括号的地方没括号,还有规定的各种换行的规定。因为以前使用java习惯了,动不动可能就把分号给加上了。go语言中可以在语句结束时候没有分号,是因为它会自动给加上分号,这有个问题就比较麻烦了,如果不按规定的格式写,go的编译器就没有办法成功编译了,会有语法错误。像在java中,{}可以跟在判断条件后边,也可以另起一行,但是在go中,就必须跟在判断条件后边。刚开始的时候好不习惯啊,总是弄错。

虽然有让人别扭的地方,同样也有让人豁然开朗的地方。我虽然是初次接触go语言,但是还是被switch给惊到了。真是太牛了,太有心意了,先上代码。

在java语言中,switch中的表达式必须是常量或者整数,而go中非常灵活。switch中可以有表达式,但是也可以像上例中没有表达式,直接进入case中进行判断。case中可包含各种条件的判定。不错吧,这是我以前都没有见到的其他语言有如此优势。

go中变量声明很有特点,举个例子,var  a int 这个语句声明了一个整型的变量a,有点像mysql数据库建表的写法,看着还能适应吧。这中声明的结果与java还是多少有些相似的,虽然没有指明是什么值,但是会默认给它赋此类型的默认值。还可以这样声明: temp := 15 一个语句完成了变量的声明和初始化。没有显式指名数据类型,会按照后面的值的类型给变量指定类型,方便吧。

还有如此赋值形式: a,b :=10,16相当于a=10,b=16,真方便吧。

还有,像一些比较主流的编程语言,一个函数的返回值最多是一个,而go中的返回值可以是任意个,关于函数还在学习中。。。。。。

今天三四个小时就学了这些吧,还开会,开得腰疼,都没怎么听懂。确实感觉到,自己跟那些技术大牛的差距还远的远呢,所以,一定好好学习,早日摆脱菜鸟的帽子。

go还在继续......