本人以前是C/C++和Python选手,因为以后的工作需要用到Go,所以只好从零开始学习Go。本篇记录一下刚看完Go指南的感受,可能理解还不到位。
总体感受
学完Go指南给我最大的感觉就是,在变量定义方面很像Pascal,在函数、结构体、方法方面很像C,虽然没有C++中类的概念,但是通过方法可以实现类似的功能,但是我感觉不如C++的表达更加清晰,对于我这种初学者来说看各种方法和接口的定义有点眼花缭乱。
基本语法
在基本语法方面,其实这对于每种语言都不是一个难题。基本的变量类型都是一样的,单个数值的定义都很简单,不过Go支持短定义和隐式定义,这有点像Python中的写法,比较简单,一般也不会混淆。
不过对于数组方面,Go中有切片的概念,有长度和容量的概念,这好像与其他语言不太一样,并且一个切片的改动会影像其他切片,这样对于一致性比较有保证,但是对代码中创建副本进行处理时要特别小心。
至于循环方面,Go中只保留了for的写法,这也问题不大,同样可以实现while的功能。
最深得我心的一个用法便是switch的用法,之前用C写switch都太麻烦,并且条件部分不支持变量,写起来很难受,用的很少。现在Go语言中支持在switch中使用变量,真正是实现了“选择”的功能,感觉是更加方便的。
函数、结构体、方法
这些属于高级一点的用法了。函数方面与其他语言写法都很相同,在传入参数方面指针和引用的用法都差不多,不过Go语言中存在对结构体指针的简写,有时候会让人产生疑惑。结构体方面都是差不多的。
Go语言对我来说最不同的一点便是方法的设计,Go语言中允许给变量实现“方法”,实际上类似于将该变量看作是一个对象或者类,所实现的方法就像是这个类内的函数。同时,Go语言中存在接口类型,可以用来代表所有实现了同一种“方法”的变量类型,这个实际上实现了类似于多态的功能,不同的变量拥有同一种方法实现,具体调用哪一种方法取决于接口类型是哪一种。
进阶“包”
Go语言最大的特色应该是有很多关于http/https的包,可以简单实现网络和存储方便的许多功能,这些还没有学到,之后学了再补充。
标签:01,变量,实现,定义,小白学,Go,方法,语言 From: https://www.cnblogs.com/miniso/p/18118681