Go语言学习01-基本程序结构
Go语言学习01-基本程序结构
基本程序结构
1 | package main // 包, 表明代码所在的模块(包) |
应用程序入口
- 必须是 main 包:
package main
- 必须是 main 方法:
func main()
- 文件名不一定是
main.go
退出返回值
与其他主要编程语言的差异
Go 中main 函数不支持任何返回值
通过
os.Exit
来返回状态main 函数不支持传入参数
func main(
arg [] string)在程序中直接通过
os.Args
获取命令行参数
编写测试程序
- 源码文件以
_test
结尾: xxx_test.go - 测试方法名以
Test
开头:func TestXXX(t *testing.T) {...}
快速设置连续值
1 | const ( |
1 | const ( |
基本数据类型
bool |
string |
int int8 int16 int32 int64 |
uint uint8 uint16 uint32 uint64 uintptr |
byte // alias for uint8 |
rune // alias for int32, represents a Unicode code point |
float32 float64 |
complex32 complex64 |
类型的预定义值
- math.MaxInt64
- math.MaxFloat64
- math.MaxUint32
指针类型
与其他主要编程语言的差异
- 不支持指针运算
- string 是值类型, 其默认的初始化值为空字符串, 而不是 nil
运算符
算数运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 相加 | A + B 输出结果 30 |
- | 相减 | A - B 输出结果 -10 |
* | 相乘 | A * B 输出结果 200 |
/ | 相除 | B / A 输出结果 2 |
% | 求余 | B % A 输出结果 0 |
++ | 自增 | A ++ 输出结果 11 |
— | 自减 | A — 输出结果 9 |
Go 语言没有前置的 ++, —,
(++a)
比较运算符
运算符 | 描述 | 实例 |
---|---|---|
== | 检查两个值是否相等, 如果相等返回 True 否则返回 False | (A == B) 为 False |
!= | 检查两个值是否不相等, 如果不相等返回 True 否则返回 False | (A != B) 为 True |
> | 检查左边值是否大于右边值, 如果是返回 True 否则返回 False | (A > B) 为 False |
< | 检查左边值是否小于右边值, 如果是返回 True 否则返回 False | (A < B) 为 True |
>= | 检查左边值是否大于等于右边值, 如果是返回 True 否则返回 False | (A >= B) 为 False |
<= | 检查左边值是否小于等于右边值, 如果是返回 True 否则返回 False | (A <= B) 为True |
用 == 比较数组
- 相同维数且含有相同个数元素的数组才可以比较
- 每个元素都相同的才相等
逻辑运算符
运算符 | 描述 | 实例 | ||||
---|---|---|---|---|---|---|
&& | 逻辑 AND 运算符. 如果两边的操作数都是 True, 则条件 True, 否则为 False. | (A && B) 为 False | ||||
\ | \ | 逻辑 OR 运算符. 如果两边的操作数有一个 True, 则条件 True, 否则为 False. | (A \ | \ | B) 为 True | |
! | 逻辑 NOT 运算符. 如果条件为 True, 则逻辑 NOT 条件 False, 否则为 True. | !(A && B) 为 True |
位运算符
运算符 | 描述 | 实例 | |||
---|---|---|---|---|---|
& | 按位与运算符 “&” 是双目运算符. 其功能是参与运算的两数各对应的二进位相与. | (A & B)结果为 12, 二进制为 0000 1100 | |||
\ | 按位与运算符 “\ | “ 是双目运算符. 其功能是参与运算的两数各对应的二进位相或. | (A \ | B) 结果为61, 二进制为 0011 1101 | |
^ | 按位与运算符 “^” 是双目运算符. 其功能是参与运算的两数各对应的二进位相异或. | (A ^ B) 结果为49, 二进制为 0011 1101 | |||
<< | 左移运算符 “<<” 是双目运算符. 左移 n 位就是乘以 2 的 n 次方. 其功能把 “<<” 左边的运算数的各二进位全部左移若干位, 由 “<<” 右边的数指定移动的位数, 高位丢弃, 低位补0 | A << 2 结果为 240, 二进制为 1111 0000 | |||
>> | 右移运算符 “>>” 是双目运算符. 右移 n 位就是除以 2 的 n 次方. 其功能是把 “>>” 左边的运算数的各二进位全部右移若干位, “>>” 右边的数指定移动的位数 | A >> 2 结果为 0000 1111 |
与其他主要编程语言的差异
&^ 按位 置零
1 &^ 0 — 1
1 &^ 1 — 0
0 &^ 1 — 0
0 &^ 0 — 0
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 技术匝记簿!
评论