文章目录
- Go语言学习01-基本程序结构
- 基本程序结构
- 应用程序入口
- 退出返回值
- 编写测试程序
- 快速设置连续值
- 基本数据类型
- 类型的预定义值
- 指针类型
- 运算符
- 算数运算符
- 比较运算符
- 用 == 比较数组
 
- 逻辑运算符
- 位运算符
- &^ 按位 置零
 
 
 
Go语言学习01-基本程序结构
基本程序结构
package main // 包, 表明代码所在的模块(包)
import "fmt" // 引入代码依赖
// 功能实现
func main() {fmt.Println("Hello World!")
}
应用程序入口
- 必须是 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) {...}
快速设置连续值
const (Monday = iota + 1TuesdayWednesdayThursdayFridaySaturdaySunday
)
const (Open = 1 << iotaClosePending
)
基本数据类型
| 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