go基础 | 青训营笔记

61 阅读1分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天

go常用输出格式的含义

格式指令含义
%b将一个整数格式转化为二进制的表达方式
%c一个Unicode的字符
%d十进制整数
%o八进制整数
%x小写的十六进制数值
%X大写的十六进制数值
%sUTF8字符
%tbool类型
%v使用默认格式输出值,或者如果方法存在,则使用类性值的String()方法输出自定义值
%T输出值的类型

go语言运算符优先级

参考文章:go语言运算符优先级

注意: >> 、<< 的优先级是比 + 、- 要高的,这和Java是不一样的

 func main() {
    // 结果是先计算 16>>4 ,然后再加上前面的8
    fmt.Println(8 + 16>>4)
 }
运算符优先级
^ !7
* / % << >> & &^6
+ - | ^5
== != < <= >= >4
<-3
&&2
||1

实用工具

JSON转Golang Struct

SOCKS5

参考文章:

SOCKS5代理是什么?

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语言的基础学习,所以对于今天课程的学习,更多的是查漏补缺。对于今天的课程是快速的过一遍。