01 | 工作区和GOPATH

2018-08-10 郝林
《Go 语言核心 36 讲》
课程介绍


讲述:黄洲君

时长:大小13.45M


这门课中 Go 语言的代码比较多,建议你配合文章收听音频。
你好,我是郝林。从今天开始,我将和你一起梳理 Go 语言的整个知识体系。
在过去的几年里,我与广大爱好者一起见证了 Go 语言的崛起。
从 Go 1.5 版本的自举(即用 Go 语言编写程序来实现 Go 语言自身),到 Go 1.7 版本的极速 GC(也称垃圾回收器),再到 2018 年 2 月发布的 Go 1.10 版本对其自带工具的全面升级,以及可预见的后续版本关键特性(比如用来做程序依赖管理的go mod命令),这一切都令我们欢欣鼓舞。Go 语言在一步步走向辉煌的同时,显然已经成为软件工程师们最喜爱的编程语言之一。
我开办这个专栏的主要目的,是要与你一起探索 Go 语言的奥秘,并帮助你在学习和实践的过程中获取更多。
我假设本专栏的读者已经具备了一定的计算机基础,比如,你要知道操作系统是什么、环境变量怎么设置、怎样正确使用命令行,等等。
当然了,如果你已经有了编程经验,尤其是一点点 Go 语言编程经验,那就更好了,毕...

展开全文
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。

精选留言

  • 郝林
    置顶
    2018-08-10
    有很多读写问归档文件是什么意思。归档文件在Linux下就是扩展名是.a的文件,也就是archive文件。写过C程序的朋友都知道,这是程序编译后生成的静态库文件。
    共 5 条评论
    183
  • Geek_1ed70f
    置顶
    2019-01-27
    下午上班时间随便读了一下,感觉有点讲的太散,只吸收了20%,晚上专门花了时间精读几遍 吸收了100%后真的干货满满,以前不懂得原理都能知道了 这是网上博客不会有的工匠级解说
    
    46
  • 全干工程师
    置顶
    2018-08-10
    什么是归档文件,归档文件里都是什么?有什么作用。

    作者回复: 请看我置顶的留言。

    
    23
  • 千年孤独
    置顶
    2018-08-10
    如果在面试中让老师来回答“设置'GOPATH有什么意义?”这个问题,除去典型回答 老师会如何简要明了回答这个问题?

    作者回复: 可以说,为了集中组织代码,以及代码互相引用。当然了,这么说后面试官可能还会让你具体解答。

    共 2 条评论
    20
  • 许明
    置顶
    2018-08-10
    ide 我觉得vscode就很好用了,我现在是vscode + glide

    作者回复: 嗯,我也用这种组合。

    共 3 条评论
    18
  • 第五季节
    置顶
    2018-08-10
    工作区是指: 放go的源码目录。 gopath是指:指向工作区的路径。 归档文件: 相当于java的jar包。下载到本地私服 不知道对不对。纯属个人观点。
    展开

    作者回复: 前两个对,归档文件在Linux下就是.a文件,也就是archive文件,是程序编译成功后生成的静态库文件。这跟Java的jar包还不太一样,jar包相当于动态链接库了。

    共 2 条评论
    15
  • 江山如画
    置顶
    2018-08-14
    对于初学者第一次看确实有些难懂,但是多看几遍后就会发现其实干货满满,我读了好几遍,接触golang也快一年了,但是很多知识点是第一次接触到,感谢郝林老师!

    作者回复: 对你有帮助就好。

    
    13
  • xyang
    置顶
    2018-08-11
    go语言适合做什么业务,能概述性的罗列讲述下吗

    作者回复: 你好,我会在后边另写文章介绍。

    
    10
  • giteebravo
    置顶
    2018-08-10
    一脸懵逼,并不知道归档文件是啥😄

    作者回复: 请看我置顶的留言。

    共 2 条评论
    8
  • jians
    置顶
    2018-08-10
    看完再结合测试后的疑问: 在不同项目src中有同名包时,go build, install只会执行gopath中最早发现包的工作区,哪如何编译后面其他工作区中的同名包呢?

    作者回复: 这就需要自己去放置了,或者临时把前面的工作区从gopath中去掉。

    共 2 条评论
    6
  • 白宇
    置顶
    2018-08-11
    请教一下,如何解决下载第三方包失败情况

    作者回复: 你好,这属于是网络问题。

    共 2 条评论
    5
  • 第五季节
    置顶
    2018-08-10
    gopath 的设计类似java 。 具体的用途是执行命令要用 例如:go run、go install、go get等。 允许设置多个路径。 在idea里面的多个project或工具组建都并列放在gopath的src下面。 例如:go install myProject1 go install myProject2 所以老师说的这个归档文件。可以理解成工作空间吗? 至于老师说的两个问题。 1:按照代码的执行顺序 从上往下 每个引入的初始化。 2:引入一下试试就知道了。
    展开

    作者回复: 归档文件的解释请看置顶的留言。

    
    4
  • 🄽🄸🅇🅄🅂
    置顶
    2018-08-12
    归档文件,可以理解为程序的动态链接库文件吗?

    作者回复: 相当于静态链接文件。

    
    3
  • 有风的林子
    置顶
    2018-08-12
    目前还没用到GOPATH包含多个工作区,不知多个目录间的分隔符是什么?空格、冒号、还是分号?如果作者顺便说一下就好了,至少增加一个知识点。😁

    作者回复: 你好,这根据具体的操作系统而定。

    共 2 条评论
    3
  • 张珂
    2019-09-19
    突然出现“库源码文件”和“命令源码文件”,只看名字不知道是什么。看了某个留言之后才知道“命令源码文件”是包含main入口函数的源码文件。虽说该专栏定位不是基础教学,但还是要照顾一下大家基础不一,阅读门槛太高也不好。 总体还感觉文字组织让人读起来很费劲,文字逻辑需要优化。 图好像也很少。文不如表,表不如图,图不如动画。有些东西一图胜千言。其他专栏都有很多图的,虽说音频很不方便,但我觉得音频对于方法论的讲述比较合适(比如架构的思想),不适合该专栏。大部分用户应该是用“阅读”来学习的。 个人观点
    展开
    
    25
  • 咖啡色的羊驼
    2018-08-10
    对于作者的两个问题。三个纬度延伸总结回答下: 1.总执行顺序的角度 引入的包 -> 当前包的变量常量 -> init()[多个同一包则按照顺序执行] -> main函数 2.依赖包执行顺序 被依赖的总是优先执行初始化,一个包只会被初始化一次。 a引入b,b引入c,则执行顺序c -> b -> a 3.单个包执行顺序的角度 总的前提:按照包中源文件名的字典顺序来排序执行。 当前包排序后的变量常量 -> 排序后的init()
    展开
    
    24
  • Bob.Chen
    2018-08-10
    请问对于之前不太了解go的同学,是否有推荐的入门书可以和专栏配合着看?
    
    19
  • melon
    2018-08-29
    感觉一脸懵逼的,建议先看一下官网这篇深入浅出的文章:https://golang.org/doc/code.html,看完再回过头来看就了然了。
    
    18
  • 乌慢
    2018-08-11
    对于新手来说看起来不是那么的通俗易懂,如果加上图解就更好了,希望以后更加好
    
    17
  • 少年
    2019-02-19
    希望老师少用写陌生的概念,比如:命令源码文件。如果用,请加点解释和类比。用过javascript,php,python,感觉这篇看的还是一脸萌比。命令源码文件这词,还是在留言区看明白的。可以参照廖雪峰老师的文笔,傻比都能看明白。只是提供些反馈,希望老师的专栏越做越好。
    共 1 条评论
    14