day01 go基础 | 青训营笔记

40 阅读2分钟

本日重点

  • 搭建go开发环境。
  • 学习go的基本使用。
  • 三个小的实战demo

详细知识点介绍

给了二十个知识点,example写的很棒!这里必须点赞,感觉代码相比于给的ppt流畅很多(话说,飞书自带的文档确实慢了些)。

image.png

很不明白为什么结构体的方法在结构体外哈哈。

type 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"

   fmt.Println(a, b, c, d)                 // {wang 1024} {wang 1024} {wang 1024} {wang 1024}
   fmt.Println(checkPassword(a, "haha"))   // false
   fmt.Println(checkPassword2(&a, "haha")) // false
}

func checkPassword(u user, password string) bool {
   return u.password == password
}

func checkPassword2(u *user, password string) bool {
   return u.password == password
}

实践

给了三个实践的例子。分别是随机猜数,在线词典和Sockts5代理。这里比较好的地方是每个demo都给了四个版本,从程序最简单的功能开始逐渐向上迭代,对开始的基础知识巩固的很棒。

image.png

课后总结

感觉go的依赖管理很强大,不需要单独的的maven或gradle快,据说部署很牛逼,暂时还没尝试。

go的标准库感觉干了很多的事情,对于字符串json和http处理很强大。

感觉go语言写起来有些类似动态语言,但确实是静态语言,编译的时候就能发现错误,有些c+python的感觉,别的同学说的反射,接口,携程暂时还没用到。

传闻中的err != nil超级多!基本写一个函数就有一个!

课程感想

早上十点群里发布今天的学习任务,对于我这样没有go基础的人来说视频讲的知识实在是太快了,两个视频合起来一共一个小时左右,搭配看看给的资料和重写一下大概需要四到五倍的时间。其中仅仅只限于使用,很多相关的基础概念说的不是很明白。