这是我参加「第五届青训营」伴学笔记创作活动的第1天。
Go语言的优势:
- 高性能、高并发
- 语言简单,学习曲线平缓
- 丰富的标准库
- 完善的工具链
- 静态链接
- 快速编译
- 跨平台
- 垃圾回收
fmt包:输入输出、格式化字符串
切片:
func main() {
s := make([]string, 3)
s[0] = "a"
s[1] = "b"
s[2] = "c"
fmt.Println("get:", s[2]) // c
fmt.Println("len:", len(s)) // 3
s = append(s, "d")
s = append(s, "e", "f")
fmt.Println(s) // [a b c d e f]
c := make([]string, len(s))
copy(c, s)
fmt.Println(c) // [a b c d e f]
fmt.Println(s[2:5]) // [c d e]
fmt.Println(s[:5]) // [a b c d e]
fmt.Println(s[2:]) // [c d e f]
good := []string{"g", "o", "o", "d"}
fmt.Println(good) // [g o o d]
map:
m := make(map[string]int)
m["one"] = 1
m["two"] = 2
结构体:
ype user struct {
name string
password string
}
func main() {
a := user{name: "wang", password: "1024"}
b := user{"wang", "1024"}
c := user{name: "wang"}
c.password = "1024"
var d user
d.name = "wang"
d.password = "1024"
socks5 代理-原理 1.协商阶段 选择合适的服务 通过协商后建立连接; 2.发送请求,socks5与host建立TCP连接,之后host返回响应,返回状态 3.client 发送数据,socks5relay数据发送到host,host接收到数据后响应相应结果。 具体状态如下图所示:
遇到的问题: 运行 go run proxy/v1/main.go 输入 nc 127.0.0.1 1080 后也无任何反应。 运行 go run proxy/v4/main.go 后没有反应,也看不到是否连接成功。
今日总结: 学习了go语言语法基础,跟着老师完成了3个示例,其中socks示例有部分代码还未看懂,结果也不太对;但大部分内容都基本掌握。 由于之前未接触过go语言,所以对go的语法还不是特别熟悉,再接下来的学习过程中我会逐步熟悉熟练掌握基本语法。