GO语言基础语法|青训营笔记

65 阅读2分钟

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

Go语言的优势:

  1. 高性能、高并发
  2. 语言简单,学习曲线平缓
  3. 丰富的标准库
  4. 完善的工具链
  5. 静态链接
  6. 快速编译
  7. 跨平台
  8. 垃圾回收

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接收到数据后响应相应结果。 具体状态如下图所示:

WechatIMG99.jpeg

遇到的问题: 运行 go run proxy/v1/main.go 输入 nc 127.0.0.1 1080 后也无任何反应。 运行 go run proxy/v4/main.go 后没有反应,也看不到是否连接成功。

今日总结: 学习了go语言语法基础,跟着老师完成了3个示例,其中socks示例有部分代码还未看懂,结果也不太对;但大部分内容都基本掌握。 由于之前未接触过go语言,所以对go的语法还不是特别熟悉,再接下来的学习过程中我会逐步熟悉熟练掌握基本语法。