写点什么

第一个 Go 程序

用户头像
escray
关注
发布于: 2021 年 04 月 14 日
第一个 Go 程序

极客时间《Go 语言从入门到实践》学习笔记 02

04 | 编写第一个 Go 程序


跟着老师视频写了 Go 语言版的 hello world,简单的代码里面还隐藏了不少细节。


在 Github 上创建了一个项目,记录学习的过程。


把笔记本上的 Go 升级到了 1.16.2 版本,另外,使用的 IDE 是 VSCode。


05 | 变量、常量以及与其他语言的差异


The master has failed more times than the beginner has tried.


在使用 VSCode 安装 Go 插件的依赖工具的时候,花了一些时间去做“鸡蛋碰石头”的事情。


中间一度想要放弃使用 VSCode,转而使用 Atom,但是也会遇到同样的问题。


Installing github.com/mdempsky/gocode FAILEDInstalling github.com/ramya-rao-a/go-outline FAILEDInstalling github.com/acroca/go-symbols FAILED...
复制代码


其实关键的步骤相对简单,不要问为什么。


go evn -w GO111MODULE=ongo env -w GOPROXY=https://goproxy.cn,direct
复制代码


goproxy.cn 据说是七牛云的。


在安装 golint 的时候


cd $GOPATH/src/golang.org/xgit clone https://github.com/golang/lintcd $GOPATHgo install golang.org/x/lint/golint
复制代码


重启 VSCode,然后就可以看到:


Installing github.com/mdempsky/gocode SUCCEED...
复制代码


然后就算是回到了正轨。


其实在课程的留言里面,也有同学提到了这些内容,但是一开始的时候并没有看到,折腾了一会儿。不知道会不会有初学者就这样放弃了,怪谁呢。


a, b = b, a
复制代码


这个应该算是语法糖吧,糖总是受欢迎的


不需要掌握太多的方式,根据自己的习惯,选择自己喜欢的方式,进行变量定义,选择简洁的方式。


对于连续常量定义简化的方式有所了解。

06 | 数据类型


  1. 不支持隐式类型转换,包括别名到原有类型的转换

  2. 不支持指针运算

  3. string 是值类型,默认初始化为 空,而不是 nil


不支持隐式类型转换,可以避免很多类型的误用; string 做为值类型,初始化为空串也比较容易理解;但是可以取到指针,但是不支持指针操作,那么要指针有什么用?


虽然留言不多,但是其中也有不少真知灼见。


看到有同学说老师代码写的磨蹭,其实,这个不重要。


有同学提到 jetbrain 的 livetemplate,我用 VSCode,于是从网上找了一个 snippets


  // https://github.com/tj/vscode-snippets/blob/master/go.json  "Test Function": {    "prefix": "t",    "body": [      "func Test$1(t *testing.T) {",      "  $0",      "}"    ],  },
复制代码


从留言里面看到说可以从“大”到“小”做显式类型转换,但是结果是 “-1”,溢出了。我之前以为会是截断。


func TestConvert(t *testing.T) {  i := int64(10)  j := int8(i)  fmt.Println(j)
a := int64(math.MaxInt64) b := int32(a) t.Log(a, b)}
// 9223372036854775807 -1
复制代码


发布于: 2021 年 04 月 14 日阅读数: 14
用户头像

escray

关注

Let's Go 2017.11.19 加入

Let's Go,用 100 天的时间从入门到入职

评论

发布
暂无评论
第一个 Go 程序