😉P03 Go 基础知识😉
Posted nagase
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了😉P03 Go 基础知识😉相关的知识,希望对你有一定的参考价值。
1 概要
- switch case语句
- for循环语句
- goto语句
- 字符串的格式化
- 运算符
2 switch case语句
package main func main() { /*switch 1 + 1 { case 1: fmt.Println("equal one") case 2: fmt.Printf("equal two") case 3: fmt.Println("equal three") default: fmt.Println("都不满足") }*/ // 变量 /*var age int fmt.Scanln(&age) switch age { case 1: fmt.Println("equal one") case 2: fmt.Printf("equal two") case 3: fmt.Println("equal three") default: fmt.Println("都不满足") }*/ // 注意事项:数据类型一致的情况 }
3 for循环
3.1 死循环
for { ... }
3.2 布尔值
for 1 > 2 { ... } flag := true for flag { ... }
示例
package main import ( "fmt" "time" ) func main() { // 示例1:死循环 /*fmt.Println("开始循环") for { fmt.Println("红鲤鱼与绿鲤鱼与驴") time.Sleep(time.Second * 1) // 等一秒再继续执行 } fmt.Println("结束循环")*/ // 示例2: /*fmt.Println("开始循环") for 2 > 1 { fmt.Println("红鲤鱼与绿鲤鱼与驴") time.Sleep(time.Second * 1) // 等一秒再继续执行 } fmt.Println("结束循环")*/ // 示例3: /*fmt.Println("开始循环") number := 1 for number < 5 { fmt.Println("红鲤鱼与绿鲤鱼与驴") number = 10 time.Sleep(time.Second * 1) // 等一秒再继续执行 } fmt.Println("结束循环")*/ // 示例4: /*fmt.Println("开始循环") number := 1 for number < 5 { fmt.Println("红鲤鱼与绿鲤鱼与驴") number = number + 1 time.Sleep(time.Second * 1) // 等一秒再继续执行 } fmt.Println("结束循环")*/ // 示例5: fmt.Println("开始循环") flag := true for flag { fmt.Println("红鲤鱼与绿鲤鱼与驴") flag = false time.Sleep(time.Second * 1) // 等一秒再继续执行 } fmt.Println("结束循环") }
3.3 变量和条件
for i := 1; i < 10 { fmt.Println("XXX") i = i + 1 }
3.4 变量&条件&变量赋值
for i := 1; i < 10; i = i + 1 { fmt.Println("XXX") }
3.5 扩展
// 对于i = i + 1 的简写:i++ // 对于i = i - 1 的简写:i--
3.6 continue 关键字
在for循环中使用,当循环遇到continue关键字时,会停止当前的循环继续执行下一次循环。
for { fmt.Println("samuel") continue fmt.Println("nagase") }
3.7 break 关键字
在for循环中,循环中一旦遇到break,就会立刻跳出循环
for { fmt.Println("xxxxx") break fmt.Println("samuel") }
4 goto语句(C、Go)
goto语句在C和Go中存在,Java、Python没有这样的语法。
该语法用于跳转到指定的行,然后向下执行代码
package main import "fmt" func main() { var userName string fmt.Printf("请输入您的用户名:") fmt.Scanln(&userName) if userName == "samuel" { // svip goto SVIP } else if userName == "nagase" { // vip goto VIP } fmt.Println("预约······") VIP: fmt.Println("等号······") SVIP: fmt.Println("进入······") }
5 字符串的格式化
将数据格式化成为特定格式的字符串时,可以使用字符串格式化。
fmt.Printf("My name is %s , I am going to %s in this %s !", userName, userBehavior, userLocation)
6 运算符
6.1 算数运算符
+、-、*、/、%、++、--
6.2 关系运算符
==、!=、>、<、>=、<=
6.3 逻辑运算符
&&、||、!
if !true { fmt.Println("xxx") }
6.4 位运算符
&、|、^、<<、>>
计算机中的存储、运算、网络传输等任何行为,本质上都是二进制的操作,例如:01010101。
十进制和二进制的转换关系
十进制 | 二进制 |
0 | 0 |
1 | 1 |
2 | 10 |
3 | 11 |
4 | 100 |
5 | 101 |
6 | 110 |
7 | 111 |
8 | 1000 |
9 | 1001 |
10 | 1010 |
... | ... |
二进制转换为十进制
10101 -> 2 ** 4 + 2 ** 2 + 2 ** 0 = 16 + 4 + 1 = 21
十进制转换为二进制
99 -> 64 + 32 + 2 + 1 => 2 ** 6 + 2 ** 5 + 2 ** 1 + 2 ** 0 = 1100011
位运算指的是二进制之间的运算
# 1、按位进行与运算(只有两个全是1才是1) r1 := 5 & 99 5 -> 0000101 99 -> 1100011 0000001 -> 1 # 2、按位进行或运算(只要有一个1就是1) r2 := 5 | 99 5 -> 0000101 99 -> 1100011 1100111 -> 2 ** 6 + 2 ** 5 + 2 ** 2 + 2 ** 1 + 2 ** 0 = 103 # 3、按位进行异或运算(只要上下不同就是1) r3 := 5 ^ 99 5 -> 0000101 99 -> 1100011 1100110 -> 64 + 32 + 4 + 2 = 102 # 4、按位向左移动(右边补0) r4 := 5 << 2 5 -> 101 向左移动两位 -> 10100 -> 16 + 4 = 20 # 5、按位向右移动(右边切割) r5 := 5 >> 2 5 -> 101 向右移动两位 -> 1 -> 1 # 6、比较清除(以第一个值为参考系,让前面的和后面的值的二进制进行比较,如果两个位置都是1,则将前面的那个1位置置为0) r6 := 5 ^ 99 5 -> 0000101 99 -> 1100011 0000100 -> 4
6.5 赋值运算符
=、+=、-=、*=、/=、%=、<<=、>>=、&=、|=、^=
6.6 运算符的优先级
5 ----- *、/、%、<<、>>、&、&^
4 ----- +、-、|、^
3 ----- ==、!=、<、<=、>、>=
2 ----- &&
1 ----- ||
注意:不要想办法去记住他,使用括号
叮嘱:不要太过于用心去背、记,只要认识即可
以上是关于😉P03 Go 基础知识😉的主要内容,如果未能解决你的问题,请参考以下文章