go入门三步曲 [ 2.0 版本 ]
如何快速学习一门新的语言?有些人说肯定是要从他的基本语法开始,语法构成了整个程序设计的基础..有些人说直接上去撸代码...真的是这样的吗?以上说法都正确,很多时候一门语言的一些特性或者语法,大同小异。恰恰也是这些"蛀虫"的存在,让我们语法的记忆造成了一定的难度,其实最好的方法是大致总结为:一看二学三写(看基础,学思路,写代码)
第一步看基础:
1.变量的定义
var vname1, vname2, vname3 type= v1, v2, v3
省略类型声明
var vname1, vname2, vname3 = v1, v2, v3
简短声明
vname1, vname2, vname3 := v1, v2, v3(只能用在函数内部;在函数外部使用则会无法编译通过,所以一般用var方式来定义全局变量)
2.Go同时支持int和uint,这两种类型的长度相同,但具体长度取决于不同编译器的实现。当前的gcc和gccgo编译器在32位和64位平台上都使用32位来表示int和uint,但未来在64位平台上可能增加到 64位。Go里面也有直接定义好位数的类型:rune(Unicode字符类型), int8, int16, int32, int64和byte(UTF-8字符类型) , uint8, uint16, uint32, uint64。其中rune是int32的别称,byte是uint8的别称
3.浮点数的类型有float32和float64两种
4.const v = iota // 每遇到一个const关键字,iota就会重置,此时v == 0
5.数组/slince/map/指针
var arr [n]type,长度也是数组类型的一部分,因此[3]int与[4]int是不同的类型。数组长度一旦定义不能改变(弱弱说一句,go中的数组是值传递,非引用,不像c语言中的数组名代表的是首地址不同)
var slice []int,slice通过array[i:j]来获取,其中i是数组的开始 位置,j是结束位置,但不包含array[j],它的长度是j-i(slice的index只能是int
类 型,而map多了很多类型,
6.字典: map 通道: chan 结构体: struct 接口: interface
- error 这个很有用,在程序中经常用到
第二步学思路:
在这个环节下中的人,都市处于一种短路的状态,知道电流的"流向",却无法通电工作,此时我们就要看看项目是如何一个整体架构以及布局,尽量做到古人说的"三步走"。最重要的一点是学习其他的人风格,哪怕有问题别人也能帮你快速定位问题所在。
第三步写代码:
在这个阶段主要是巩固基础知识,这个时候就是已经对golang有了一定的了解了,那么我们就可以开始做自己的项目了,而非学习高难度的用法或者研究类库的使用,在写代码过程中你会遇见各种现实问题,通过自学以及同事的帮助,最终逐一解决。
相信经历了前面的步骤,在项目中使用go基本没有问题,毕竟我们对于程序员来说,语言只是手段,而非目的。最后感谢同事们在这段时间的对我工作的帮助,
收破烂的才子
最后登录:2019-07-10
在线时长:3小时13分
- 粉丝3
- 金钱95
- 威望40
- 积分525
共 0 条评论