(一) 标识符与关键字
1.1 命名方式
友情提示: 命名的时候不能命名关键字和保留字 go变量、常量、自定义类型、包、函数的命名方式须遵循规则:
- 首字符任意Unicode字符核或下划线
- 首字符之外的部分可以任意Unicode字符核或下划线或者数字组成
- 名字长度不受限制
- 建议: 英文字母、下划线、数字组成
1.2 关键字(25)
| break | default | func | interface | select | case | defer | go | map | struct | chan | else | goto | package | switch | const | if | range | type | continue | for | import | return | fallthrough | var |
1.3 保留字
1.3.1 常量
| ture | false | iota | nil |
1.3.2 数据类型
| int | int8 | int16 | int32 | int64 |
| uint | uint8 | uint16 | uint32 | uint64 |
| uintptr | floa32| float64 | complex128 | complex64 | bool | byte | rune | string | error |
1.3.3 函数
| make | len | cap | new | append | copy | close | delete | complex | real | imag | panic | recover |
(二) 操作符与表达式
二进制计算方式:负数表达方式,正数二进制取反并补码1
2.1 运算符
2.1.1 算法运算符
不支持前置
++--; 主要包含:加(+)、减(-) 、 乘(*)、 除(/) 、求余(%)、后置加加(++)、后置减减(—)
2.1.2 关系运算符
友情提示:
==比较数组:相同维数且相同个数元素的数组才能做比较 、每个元素都要相同。
- 两个值是否相等:
== - 大于:
> - 两个值是否不等:
≠ - 小于:
< - 大于等于:
≥ - 小于等于:
≤
2.1.3 逻辑运算符
- 且(
&&):两个条件满足方为true,否则为false - 或(
||):只要有一个条件满足就返回true,否则为false - 非(
!):条件取反
2.1.4 位运算符
友情提示: 由于
|在表格语法中无法打出,以/代替
| 位运算符 | 功能 | 描述 |
|---|---|---|
& | 按位与运算符 | |
/ | 按位或运算符 | |
^ | 按位异或运算符 | |
<< | 左移运算符 | 左移 n 位就是:乘以2的 n 倍 |
>> | 右移运算符 | 右移 n 位就是:除以2的 n 倍 |
(三) 变量|常量|字面量
变量初始化:数值类型初始化0,字符串类型初始化为空字符串,布尔类型初始化false,引用类型、函数、指针、接口初始化nil
3.1 变量命名
- 定义类型并赋值:
var str string="JACK" - 多个变量同时定义类型并赋值:
var a,b int =1,2 - 类型推荐赋值:
var a="name" - 多个变量类型推荐赋值:
var c,d=1,3 - 声明并初始化:
a:=1 - 下划线匿名变量:
_,d:=1,3(不占用命名空间和内存)
3.2 常量
- 定义单个常量:
const PI float32=3.14 - 定义多个常量:
const(
PI = 3.14
E = 2.71
)
const(
a=100
b //100,跟上一行值相同
c //100,跟上一行值相同
)
- iota定义常量
const(
a=iota //默认值0,以下依次+1
b
c
)
3.3 字面量
字面量: 没有出现变量名,直接出现了值
fmt.Printf("Hello World")
(四) 变量作用域
- 全局变量: 大写字母开头,package所有位置都可访问,跨包需要带package包名
- 包内访问: 小写字母开头
- 局部变量: 小写字母开头,仅限函数内访问
(五) 注释与godoc
5.1 注释
// 1. 单行注释
/**
2. 多行注释【推荐】
*/
5.2 godoc
网页版代码注释文档,建议在Linux和OS系统使用
- 安装:
go get golang.org/x/tools/cmd/godoc - 启动http:
godoc -http=:6060 - 浏览器访问:
http://127.0.0.1:6060/pkg/项目名