由于公司业务需要,近期开始学习Go语言。装完环境和Ide后,理所当然的从经典的Hello World开始入手,没有细看文档,然后开局就翻车。本篇笔记不会详细记录Go的方方面面,只是看个大概的Go语言的语法,细节在实际编写中体会。
学习资料使用菜鸟教程的Go语言教程
Go by Example中文版
main.go
1 | package main |
使用Ide创建的Go文件,定义的package为文件名,每个Go引用都应该包含一个名为main的包,所以第一个创建的文件如果不是main,记得将package的名字修改为main。和C语言一样,main函数也是必须的,作为程序的入口第一个执行。平常写Javascript和Python写的奔放习惯了,突然学习Go忘记了这两点,理所当然的翻车了。
执行go程序
1 | go run main.go |
注释
1 | //当行注释 |
标识符
只能使用数字字母下划线,开头不可是数字。
变量声明
- 一般形式
- var var1 变量类型
省略类型
- var var1 = ‘’ //根据赋予的值自动判断变量类型
省略var
- varName := ‘’ //左侧不可是已经声明过的变量, 且该种形式声明只能在函数体中出现,且该值在代码块中必须被使用
多变量声明
var var1, var2, var3 type
var var1, var2,…… = value1,value2,value3
常量声明
与变量声明类似,但是不可使用 := 形式来声明常量
- const var type = ‘’ //显式类型
- const var = ‘’ //隐式类型
IOTA
特殊常量、常量计数器, 在每个const出现的时候被重置为0, 然后在下一个const出现之前, 每出现一次IOTA,它的值会自增1。
1 | package main |
1 | Hello World 0 1 2 |
算术运算符
运算符 | 备注 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 余数 |
++ | 自增 |
– | 自减 |
关系运算符
运算符 | 备注 |
---|---|
== | 等于 |
!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
逻辑运算符
运算符 | 备注 |
---|---|
&& | 与 |
丨丨 | 或 |
! | 非 |
条件语句
1 | if condition {} |
根据数据类型进入对应的语句分支进行处理。
1 | switch var.(type){ |
数组
语法:var arrayName[size]type1
var a[5]type
语句块中省略var创建数组1
2
3
4
5
6
7
8package main
import "fmt"
func main() {
a := [5]int{1,2,3,4,5}
fmt.Println(a)
}
切片 slice
创建切片1
sliceName := make([]type,size)
赋值1
2
3sliceName[0] = 'a'
sliceName[1] = 'b'
sliceName[2] = 'c'
动态增加数组长度1
sliceName = sliceName.append(sliceName,'d','e')
拷贝数组1
copy(sliceName,newSlice)
切片操作
1 | sliceName[2:5] //[c d e] |
关联数组(又称字典、哈希)
1 | m = make(map[string]string) |