From c976dcaa2ca58c2be53a78c2b241a11a2e52ed5b Mon Sep 17 00:00:00 2001 From: pengshiyu <1940607002@qq.com> Date: Mon, 5 Sep 2022 22:45:07 +0800 Subject: [PATCH] fix --- blog/golang/golang-operator.md | 189 +++++++++++++++++++++++++++++---- blog/golang/golang-process.md | 131 +++++++++++++++++++++++ blog/golang/index.md | 7 +- doc/go.md | 2 +- 4 files changed, 305 insertions(+), 24 deletions(-) create mode 100644 blog/golang/golang-process.md diff --git a/blog/golang/golang-operator.md b/blog/golang/golang-operator.md index 3b29d45..7f27a85 100644 --- a/blog/golang/golang-operator.md +++ b/blog/golang/golang-operator.md @@ -1,4 +1,4 @@ -Golang 运算符 +# Golang 运算符 - 算术运算符 - 关系运算符 @@ -8,13 +8,13 @@ Golang 运算符 ## 算术运算符 -运算符 | 描述 --| - -`+`| 加 -`-`| 减 -`*`| 乘 -`/`| 除 -`%`| 取余 +| 运算符 | 描述 | +| ------ | ---- | +| `+` | 加 | +| `-` | 减 | +| `*` | 乘 | +| `/` | 除 | +| `%` | 取余 | `++` 和 `--` 是单独的语句,并不是运算符 @@ -59,19 +59,168 @@ func main() { } ``` - ## 关系运算符 -运算符 | 描述 --| - -`==`| 相等 -`!=` | 不相等 -`>` | 大于 -`>=` | 大于等于 -`<` | 小于 -`<=` | 小于等于 +| 运算符 | 描述 | +| ------ | -------- | +| `==` | 相等 | +| `!=` | 不相等 | +| `>` | 大于 | +| `>=` | 大于等于 | +| `<` | 小于 | +| `<=` | 小于等于 | + +示例 + +```go +package main + +import ( + "fmt" +) + +func main() { + a := 1 + b := 2 + + fmt.Printf("%v\n", a == b) + // false + + fmt.Printf("%v\n", a > b) + // false + + fmt.Printf("%v\n", a >= b) + // false + + fmt.Printf("%v\n", a < b) + // true + + fmt.Printf("%v\n", a <= b) + // true + + fmt.Printf("%v\n", a != b) + // true +} + +``` + +## 逻辑运算符 + +| 运算符 | 描述 | +| ------ | ------ | +| `&&` | 逻辑与 | +| `\|\|` | 逻辑或 | +| `!` | 逻辑非 | + +示例 + +```go +package main + +import ( + "fmt" +) + +func main() { + a := true + b := false + + fmt.Printf("%v\n", a && b) + // false + + fmt.Printf("%v\n", a || b) + // true + + fmt.Printf("%v\n", !a) + // false +} +``` + +## 位运算符 + +| 运算符 | 描述 | +| ------ | -------- | +| `&` | 按位与 | +| `\|` | 按位或 | +| `^` | 按位异或 | +| `<<` | 左移 | +| `>>` | 右移 | +示例 + +```go +package main + +import ( + "fmt" +) + +func main() { + a := 4 + b := 8 -逻辑运算符 -位运算符 -赋值运算符 \ No newline at end of file + fmt.Printf("a: %b\n", a) + // a: 100 + + fmt.Printf("b: %b\n", b) + // b: 1000 + + r := a & b + fmt.Printf("r: %v\n", r) + // r: 0 + + r = a | b + fmt.Printf("r: %v\n", r) + // r: 12 + + r = a ^ b + fmt.Printf("r: %v\n", r) + // r: 12 + + r = a << 2 + fmt.Printf("r: %v\n", r) + // r: 16 + + r = a >> 2 + fmt.Printf("r: %v\n", r) + // r: 1 + +} + +``` + +## 赋值运算符 + +| 运算符 | 描述 | +| ------ | ------------------------------ | +| `=` | 赋值(右边的值赋值给左边变量) | +| `+=` | 相加后赋值 | +| `-=` | 相减后赋值 | +| `*=` | 相乘后赋值 | +| `/=` | 相除后赋值 | +| `%=` | 取余后赋值 | +| `<<=` | 左移后赋值 | +| `>>=` | 右移后赋值 | +| `&=` | 按位与后赋值 | +| `\|=` | 按位或后赋值 | +| `^=` | 按位异或后赋值 | + +示例 + +```go +package main + +import ( + "fmt" +) + +func main() { + a := 1 + + a += 1 // 等价于 a = a + 1 + fmt.Printf("a: %v\n", a) + // a: 2 + +} + +``` diff --git a/blog/golang/golang-process.md b/blog/golang/golang-process.md new file mode 100644 index 0000000..e72ce3f --- /dev/null +++ b/blog/golang/golang-process.md @@ -0,0 +1,131 @@ +# Golang 流程控制 + +- 顺序执行 +- 选择执行 +- 循环执行 + +## 顺序执行 + +示例 + +```go +package main + +import ( + "fmt" +) + +func main() { + fmt.Println("第一步") + fmt.Println("第二步") +} + +// 第一步 +// 第二步 + +``` + + + +## 选择执行 + +### if...else + +示例 +```go +package main + +import ( + "fmt" +) + +func main() { + a := 1 + + // 布尔表达式不需要括号 + if a > 10 { + fmt.Println("a > 10") + } else { + fmt.Println("a <= 10") + } + // a <= 10 +} + +``` +### switch...case + +示例 + +```go +package main + +import ( + "fmt" +) + +func main() { + a := 1 + + switch a { + case 0: + fmt.Println("a = 0") + + case 1: + fmt.Println("a = 1") + + default: + fmt.Println("default") + } + + // a = 1 +} +``` + +## 循环执行 + +### for + +示例 + +```go +package main + +import ( + "fmt" +) + +func main() { + for i := 0; i < 5; i++ { + fmt.Printf("%v ", i) + } + // 0 1 2 3 4 +} + +``` + +### for...range + +示例 + +```go +package main + +import "fmt" + +func main() { + + list := []int{1, 2, 3} + + for index, value := range list { + fmt.Printf("%v=%v ", index, value) + } + // 0=1 1=2 2=3 +} + +``` + +### 关键字 + +- break +- continue +- goto \ No newline at end of file diff --git a/blog/golang/index.md b/blog/golang/index.md index e79abf8..894024a 100644 --- a/blog/golang/index.md +++ b/blog/golang/index.md @@ -26,11 +26,12 @@ [第九章 Golang 格式化输出](blog/golang/golang-format.md) -[第十章 Golang 运算符](blog/golang/golang-operator.md) +[第十章 Golang 运算符](/blog/golang/golang-operator.md) + +[第十一章 Golang 流程控制](/blog/golang/golang-process.md) https://www.bilibili.com/video/BV1ME411Y71o?p=27&spm_id_from=pageDriver&vd_source=efbb4dc944fa761b6e016ce2ca5933da -05:47 -https://www.bilibili.com/video/BV1zR4y1t7Wj?p=17&spm_id_from=pageDriver&vd_source=efbb4dc944fa761b6e016ce2ca5933da \ No newline at end of file +https://www.bilibili.com/video/BV1zR4y1t7Wj?p=19&spm_id_from=pageDriver&vd_source=efbb4dc944fa761b6e016ce2ca5933da \ No newline at end of file diff --git a/doc/go.md b/doc/go.md index 15e04ec..82dabcd 100644 --- a/doc/go.md +++ b/doc/go.md @@ -1,7 +1,7 @@ # Go语言 ## 学习笔记 -[笔记: Golang 核心编程](blog/golang/index.md) +[笔记: Golang 核心编程](/blog/golang/index.md) ## 学习资料 -- GitLab