这是我参与「第五届青训营 」笔记创作活动的第1天。
忙忙碌碌一直没有整理之前的笔记,今天就回顾一下在Go语言基础语法课上学到的内容。
入门Go语言,首先要知道其具有的一些特点:
- 静态链接
- 快速编译(这部分与编译器有关,后面有讲到)
- 跨平台
- 垃圾回收
总而言之,这是一种高性能,开发快的语言。
安装Go语言的开发环境还是比较简单的,本人在windows系统下进行配置,只要在go.dev/上下载电脑所需版本,然后在vscode上面配置本人需要的Go插件即可(这里本人踩过一个坑,注意到vscode可能会按默认路径找不到刚刚下载的Go语言版本,这时需要在vscode上面的命令行输入:go env -w GO111MODULE=auto自动寻找即可。)
Go语言与其他语言类似,具有分支,循环,函数,格式化输入输出等内容,也具有一系列针对字符串的操作。可用os.argv获取命令行参数,os.getenv获取环境变量。
Go语言的函数与我们之前常用的Java,C++,python的一个较大区别之处是,其返回值的第二个参数是错误信息(err),因此调用返回错误信息的函数,需要写两个参数(如result,err := func()):
Go语言的指针:用途较为有限,作用主要是对传入的参数进行修改,只需要记住两个符号:&(取地址)和*(根据地址取值):
在Go语言中,为了更加高效便捷,对于循环进行了简化,仅保留了for循环;for循环的使用方法与其它语言中的使用方法区别不大。
Go语言也支持结构体这种形式,而且有一些特殊操作:
当结构体每个成员首字母大写的时候,就可以用json.Marshal对整个结构体序列化,成为一个类似字符串的变量(json形式),序列化出来的字符串默认风格为大写字母开头。也支持用json.UnMarshal对其反序列化,到一个空的变量中或是开的map中(Golang的map完全无序)。
这是实战项目中的一部分,可以参考Unmarshal的用法。
总而言之,Go语言对于有其他语言经验的开发者而言,总体看来还是比较好上手的,它的配置,语法,编译等都比较容易掌握。本人在本节课程后已经可以用Go语言完成一些小的coding任务。但有一些独特的用法和操作需要不断实战才能更好的使用。