收破烂的才子 2019-02-25 23:32:12 1057次浏览 0条评论 0 0 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

  1. error 这个很有用,在程序中经常用到

第二步学思路:

在这个环节下中的人,都市处于一种短路的状态,知道电流的"流向",却无法通电工作,此时我们就要看看项目是如何一个整体架构以及布局,尽量做到古人说的"三步走"。最重要的一点是学习其他的人风格,哪怕有问题别人也能帮你快速定位问题所在。

第三步写代码:
在这个阶段主要是巩固基础知识,这个时候就是已经对golang有了一定的了解了,那么我们就可以开始做自己的项目了,而非学习高难度的用法或者研究类库的使用,在写代码过程中你会遇见各种现实问题,通过自学以及同事的帮助,最终逐一解决。
相信经历了前面的步骤,在项目中使用go基本没有问题,毕竟我们对于程序员来说,语言只是手段,而非目的。最后感谢同事们在这段时间的对我工作的帮助,

    没有找到数据。
您需要登录后才可以评论。登录 | 立即注册