简介
Go语言本身只有很少的特性,也不太可能添加太多的特性:
拥有自动垃圾回收、一个包系统、函数作为一等公民、词法作用域、系统调用接口、只读的UTF8字符串等。
go没有隐式的数值转换,没有构造函数和析构函数,没有运算符重载,没有默认参数,也没有继承,没有泛型,没有异常,没有宏,没有函数修饰,更没有线程局部存储。
安装
https://golang.google.cn/doc/install?download=go1.16.5.linux-amd64.tar.gz#install
根据提示下载,然后使用tar命令解压到/usr/local
中
|
|
傻逼go安装包,2021年了,安装没提示(只是单纯的解压),而且还要自己配PATH环境变量,我笑了。配了path环境还要注意要登出登入linux才能起作用。
hello world
|
|
go中一个package由一个或多个.go
文件组成,每个go文件开头申明本文件属于哪个package
main包比较特殊。它定义了一个独立可执行的程序,而不是一个库。在main里的main函数也很特殊,它是整个程序执行时的入口
Go语言不需要在语句或者声明的末尾添加分号,除非一行上有多条语句。实际上,编译器会主动把特定符号后的换行符转换为分号,因此换行符添加的位置会影响Go代码的正确解析(译注:比如行末是标识符、整数、浮点数、虚数、字符或字符串文字、关键字break、continue、fallthrough或return中的一个、运算符和分隔符++、–、)、]或}中的一个)。
举个例子,函数的左括号{必须和func函数声明在同一行上,且位于末尾,不能独占一行,而在表达式x + y中,可在+后换行,不能在+前换行(译注:以+结尾的话不会被插入分号分隔符,但是以x结尾的话则会被分号分隔符,从而导致编译错误)。
gofmt工具把代码格式化为标准格式
goimports,可以根据代码需要,自动地添加或删除import声明
go env
查看当前go的各种配置信息,如GOPATH
命令行参数
(ps:脑子进了一吨水才会这么组织章节) os.Args是一个字符串数组,os.Args[0],是命令本身的名字,和其他编程语言一致
循环
第一种写法:
|
|
注意,不能用++i?
第二中写法:
|
|
设list是一个列表,采用以上方式,可以获得索引i,下标i的元素。
变量声明的几种方式
|
|
实践中一般使用前两种形式中的某个
join
strings.Join()用法和python的join类似。