Loading... # 字符串格式化 将数据格式化成为特定格式的字符串时,可以使用字符串格式化。 ```go package main import "fmt" func main() { var name, address, action string fmt.Print("请输入姓名:") fmt.Scanln(&name) fmt.Print("请输入位置:") fmt.Scanln(&address) fmt.Print("请输入行为:") fmt.Scanln(&action) result := fmt.Sprintf("我叫%s,在%s正在干%s", name, address, action) //result := "我叫" + name + "在" + address + "干" + action fmt.Println(result) } ``` # 运算符 ## 算数运算符  ## 关系运算符  ## 逻辑运算符  ## 位运算符  必知必会概念: 计算机中的 存储、运算、网络传输等任何的行为,本质上都是二进制的操作。例如:01010101。 ```go A B hello -> 0101010010101 -> hello ``` 信息表现形式 ```go 二进制表示:0101010010101 -> hello 十进制表示:1921 -> hello ``` 十进制和二进制的转换关系 | 十进制 | 二进制 | | - | - | | 0 | 0 | | 1 | 1 | | 2 | 10 | | 3 | 11 | | 4 | 100 | | 5 | 101 | | 6 | 110 | | 7 | 111 | | 8 | 1000 | | 9 | 1001 | | 10 | 1010 | | ... | ... | 二进制转换为十进制 ```go 10101 -> 2**4 + 2**2 + 2**0 => 16 + 4 + 1 => 21 101010010101 -> 2**11 + 2**9 + .... ``` 十进制转换成二进制 ```go 99 -> 64 + 32 + 2 + 1 -> 2**6 + 2**5 + 2**1 + 2*0 -> 1100011 ``` 位运算指的是二进制之间的运算 ```go // 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 = 64 + 32 + 4 + 2 + 1 = 103 // 3.按位进行异或运算(上下不同,就得1) r3 := 5 ^ 99 5 -> 0000101 99 -> 1100011 1100110 -> 2**6 + 2**5 + 2**2 + 2**1 = 64 + 32 + 4 + 2 = 102 // 4.按位向左移动 r4 := 5 << 2 5 -> 101 向左移动2位 -> 10100 -> 2**4 + 2**2 = 16 + 4 = 20 // 5.按位向右移动 r5 := 5 >> 1 5 -> 101 向右移动1位 -> 10 -> 2**1 = 2 // 6.比较清除 // 以前面的值为基准,让前面的和后面的值的二进制位进行比较,如果两个位置都是1,则讲前面的值的那个位置置0 r6 := 5 &^ 99 5 -> 0000101 99 -> 1100011 0000100 -> 2**2 = 4 ``` ## 赋值运算符  ```go age := 19 age = 99 age = age + 9 // age+=9 age = age - 9 // age-=9 age = age * 9 // age*=9 ... ``` ## 运算符的优先级 ```go Precedence Operator 5 * / % << >> & &^ 4 + - | ^ 3 == != < <= > >= 2 && 1 || ``` ```go v1 := 3 + 2 * 2 v2 := 8 == 5 & 99 ``` **注意:不要想办法去记住他,使用括号** 参考地址: * [https://golang.org/ref/spec#Arithmetic_operators](https://golang.org/ref/spec#Arithmetic_operators) * [https://www.runoob.com/go/go-operators.html](https://www.runoob.com/go/go-operators.html) **叮嘱:不要太过于用心去背、记,主要认识即可。优先级记不住就用括号。** Last modification:February 28th, 2021 at 09:54 pm © 允许规范转载 Support If you think my article is useful to you, please feel free to appreciate ×Close Appreciate the author Sweeping payments