这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
go常用输出格式的含义
| 格式指令 | 含义 |
|---|---|
| %b | 将一个整数格式转化为二进制的表达方式 |
| %c | 一个Unicode的字符 |
| %d | 十进制整数 |
| %o | 八进制整数 |
| %x | 小写的十六进制数值 |
| %X | 大写的十六进制数值 |
| %s | UTF8字符 |
| %t | bool类型 |
| %v | 使用默认格式输出值,或者如果方法存在,则使用类性值的String()方法输出自定义值 |
| %T | 输出值的类型 |
go语言运算符优先级
参考文章:go语言运算符优先级
注意: >> 、<< 的优先级是比 + 、- 要高的,这和Java是不一样的
func main() {
// 结果是先计算 16>>4 ,然后再加上前面的8
fmt.Println(8 + 16>>4)
}
| 运算符 | 优先级 |
|---|---|
| ^ ! | 7 |
| * / % << >> & &^ | 6 |
| + - | ^ | 5 |
| == != < <= >= > | 4 |
| <- | 3 |
| && | 2 |
| || | 1 |
实用工具
SOCKS5
参考文章:
SOCKS5是代理协议,在使用TCP/IP协议通信的前端机器和服务器之间发挥中介作用,内部网络的前端机器可以访问互联网的服务器,使通信更加安全。
CSP
参考文章:Go语言的CSP模型
CSP是go很核心的一种开发思想,通过通信共享内存。
package main
func main() {
// 简单案例,计算一个数的平方
src := make(chan int)
dest := make(chan int, 3)
go func() {
defer close(src)
for i := 0; i < 10; i++ {
src <- i
}
}()
go func() {
defer close(src)
for i := range src {
dest <- i * i
}
}()
for i := range dest {
println(i)
}
}
学习总结
由于之前我已经有了一定的go语言的基础学习,所以对于今天课程的学习,更多的是查漏补缺。对于今天的课程是快速的过一遍。