长安米贵,居大不易

历史上无论哪朝哪代,像“长安”这种地方,对于绝大部分的普通人而言,即使拼尽全力,大概率也是无法留下来的,因此针对这样的现实就连唐朝伟大的诗人白居易都感叹道:“长安米贵,居大不易”。到今天面对同样的情景,现在的年轻人直接选择躺平,与其天天996、007为他人交房租还不如索性躺平:“不结婚、不买车、不买房”,我的青春我做主。


go的相关命令

1、go build

主要用来编译代码,如果是普通包,执行之后不会产生任何文件,如果需要在GOPATH/pkg下生成文件,需要执行goinstall;如果是在main包下,执行gobuild之后,会在当前目录下生成一个可执行文件,如果需要在GOPATH/pkg下生成文件,需要执行go install;如果是在main包下,执行go build之后,会在当前目录下生成一个可执行文件,如果需要在GOPATH/pkg下生成文件,需要执行goinstall;如果是在main包下,执行gobuild之后,会在当前目录下生成一个可执行文件,如果需要在GOPATH/bin下生成相应的文件,需要执行go install 文件;如果某个目录下有多个文件,但是只想编译指定的文件可以在go build之后加上文件名。除此之外需要注意的是go build会忽略目录下以 _ 或者 . 开头的go文件 。

go build参数说明

-o 指定输出的文件名,可以带上路径,例如 go build -o a/b/c
-i 安装相应的包,编译 + go install
-a 更新全部已经是最新的包的,但是对标准包不适用
-n 把需要执行的编译命令打印出来,但是不执行,这样就可以很容易的知道底层是如何运行的
-p n 指定可以并行可运行的编译数目,默认是 CPU 数目
-race 开启编译的时候自动检测数据竞争的情况,目前只支持 64 位的机器
-v 打印出来我们正在编译的包名
-work 打印出来编译时候的临时文件夹名称,并且如果已经存在的话就不要删除
-x 打印出来执行的命令,其实就是和 -n 的结果类似,只是这个会执行
-ccflags 'arg list' 传递参数给 5c, 6c, 8c 调用
-compiler name 指定相应的编译器,gccgo 还是 gc
-gccgoflags 'arg list' 传递参数给 gccgo 编译连接调用
-gcflags 'arg list' 传递参数给 5g, 6g, 8g 调用
-installsuffix suffix 为了和默认的安装包区别开来,采用这个前缀来重新安装那些依赖的包,-race 的时候默认已经是 -installsuffix race,大家可以通过 -n 命令来验证
-ldflags 'flag list' 传递参数给 5l, 6l, 8l 调用
-tags 'tag list' 设置在编译的时候可以适配的那些 tag

2、go clean

主要用来一处当前源码包和关联源码包里编译生成的文件

go clean参数说明

-i 清除关联的安装的包和可运行文件,也就是通过 go install 安装的文件
-n 把需要执行的清除命令打印出来,但是不执行,这样就可以很容易的知道底层是如何运行的
-r 循环的清除在 import 中引入的包
-x 打印出来执行的详细命令,其实就是 -n 打印的执行版本

3、go fmt

主要用来针对编写的代码采用统一的格式化标准。

go fmt参数说明

-l 显示那些需要格式化的文件
-w 把改写后的内容直接写入到文件中,而不是作为结果打印到标准输出。
-r 添加形如 “a [b:len (a)] -> a [b:]” 的重写规则,方便我们做批量替换
-s 简化文件中的代码
-d 显示格式化前后的 diff 而不是写入文件,默认是 false
-e 打印所有的语法错误到标准输出。如果不使用此标记,则只会打印不同行的前 10 个错误。
-cpuprofile 支持调试模式,写入相应的 cpufile 到指定的文件

4、go get

主要用来获取远程代码包,执行该命令的过程中内部实际分成了两步来执行,第一步下载源码包,第二步执行go install。

go get参数说明

-d 只下载不安装
-f 只有在你包含了 -u 参数的时候才有效,不让 -u 去验证 import 中的每一个都已经获取了,这对于本地 fork 的包特别有用
-fix 在获取源码之后先运行 fix,然后再去做其他的事情
-t 同时也下载需要为运行测试所需要的包
-u 强制使用网络去更新包和它的依赖包
-v 显示执行的命令

5、go install

主要用来生成目前文件,内部实际分成两步,第一步生成结果文件,第二步将编译好的结果移到GOPATH/pkg或者GOPATH/pkg或者GOPATH/pkg或者GOPATH/bin目录下。

6、go test

主要用来执行单元测试文件

go test参数说明

-bench regexp 执行相应的 benchmarks,例如 -bench=.
-cover 开启测试覆盖率
-run regexp 只运行 regexp 匹配的函数,例如 -run=Array 那么就执行包含有 Array 开头的函数
-v 显示测试的详细命令

7、go tool

主要用来运行指定的go tool工具

go tool fix . 用来修复以前老版本的代码到新版本,例如 go1 之前老版本的代码转化到 go1, 例如 API 的变化
go tool vet directory|files 用来分析当前目录的代码是否都是正确的代码,例如是不是调用 fmt.Printf 里面的参数不正确,例如函数里面提前 return 了然后出现了无用代码之类的。

8、go doc

主要用来查看文档相关的内容

9、go list

主要用来查看当前全部安装的package

小结

go中的命令其实远不止上面列举的这几种,从日常使用的频率触发列举出了上面的这几种,其中go build、go clean
、go install、go get使用的比较多,这些命令务必需要掌握。

go语言的魔幻旅程28-go命令相关推荐

  1. go语言的魔幻旅程20-io包

    今日长缨在手,何日缚住苍龙 五一假期的这几天,闲来无事,于是找了之前关系较好的二位同学聊了聊各自的现状,暂且称呼这两位同学分别为A和B吧,A同学本科学的也是计算机,因为学校地理位置的因素,大四实习的时 ...

  2. go语言的魔幻旅程03-控制结构

    他强任他强,清风拂山岗,他横由他横,明月照大江 倚天不出,谁与争锋,时间的车轮穷无声息已经挥别数载,原著作者金庸老先生早已经驾鹤西去,但其作品小说"飞雪连天射白鹿,笑书神侠倚碧鸳" ...

  3. go语言的魔幻旅程18-bytes包

    天下熙熙皆为利来,天下攘攘皆为利往 这段时间在不知不觉中又被动的学会了一个新的"成语"-潘嘎之交,想必不需要我在此在此普及故事的又来,但凡是稍微关注点热点新闻的人肯定对此不会感觉到 ...

  4. go语言的魔幻旅程17-strconv包

    君问归期未有期,巴山夜雨涨秋池 离家已近一载,虽偶有思乡欲踏归途之心,但奈何各种各样现实原因的羁绊,始终未能如愿动身,或许下一次的归途似乎只能安排到下一个收获的黄金时节.说起家乡对于大多数人而言总感觉 ...

  5. go语言的魔幻旅程16-strings包

    故人西辞黄鹤去,此地空余黄鹤楼 不知道一千多年前诗仙李白在创作这首诗词的内心是怎样的,如果真的有时空穿梭机这种神奇的东西,倒是可以拿来穿越一下.只可惜昔人已逝.物是人非,诗仙早已经消失在历史的年轮中, ...

  6. 一个数据包的旅程_数据科学语言的个人旅程

    一个数据包的旅程 by Elena Nisioti 由Elena Nisioti 数据科学语言的个人旅程 (A personal journey through the languages of da ...

  7. Go语言实践[回顾]教程03--Go语言的编译与运行的命令行

    Go语言实践[回顾]教程03--Go语言的编译与运行的命令行 Go语言是编译型静态语言 如何编译Go语言的源文件 如何执行(运行)编译后的文件 开发中如何编译后立即执行 总结 Go语言是编译型静态语言 ...

  8. r语言 col_R语言之可视化(28)蜜蜂图

    博客地址:https://www.jianshu.com/u/619b87e54936 目录 R语言之可视化①误差棒 R语言之可视化②点图 R语言之可视化③点图续 R语言之可视化④点韦恩图upsetR ...

  9. c语言输入字符串以井号结束,想学好C语言必须得先学会自救(命令行必须以井号“#”开头 最后不能加分号“;”结尾)...

    想学好C语言必须得先学会自救(命令行必须以井号"#"开头 最后不能加分号";"结尾) 2018-11-24 [[编程学习]想学好C语言,必须得先学会自救]htt ...

最新文章

  1. Microsoft Enterprise Library 5.0 系列(八) Unity Dependency Injection and Interception
  2. element的多级选中_element-ui(Vue.js) 我在做二级select联动时选中值是循环的value怎么解?...
  3. word2vec损失函数的数学推导和近似训练以及doc2vec的实战掉包应用
  4. 2008年校本培训之论文 封面
  5. 小强学渲染之OpenGL渲染管线详析
  6. leetcode算法题--二叉树中序遍历迭代法
  7. tf.reverse_sequence
  8. node 创建静态web服务器(下)(处理异步获取数据的两种方式)
  9. mysql的驱动connect放在哪里_Python连接数据库两种方法,QSqlDatabase,pymmsql,驱动名...
  10. 图表达相关书书籍调研
  11. 05_JS流程控制语句
  12. 【华为云技术分享】漫谈LiteOS-端云互通组件-MQTT开发指南(上)
  13. [Unity脚本运行时更新]C#7.3新特性
  14. 【OpenCV】图像金字塔
  15. 打开outlook2010里面的链接显示 “由于本机的限制,该操作已被取消。请与系统管理员联系。”解决方法...
  16. redis的hscan替换hgetall的疑问,redis返回列表获取数据示例
  17. Mathematic Paradigm
  18. Linux系统内核升级
  19. HO-PLGA-COOR,酯封端聚(D,L-丙交酯-co-乙交酯)共聚物
  20. Android接口调用

热门文章

  1. Angular入门-Hero Editor抽丝
  2. 粗糙集理论应用的实例
  3. HEVC编码结构:Slice和Tile
  4. Java语言中 (游戏:彩票)修改程序清单3-8,产生三位整数的彩票。程序提示用户输入一个三位整数,依照以下规则判定用户是否赢得奖金:
  5. 集成学习——bagging原理及分析
  6. ubuntu命令 图片 壁纸_[教程]Ubuntu下完整配置自动壁纸切换
  7. 这4款风格各异的电脑软件,免费又实用,后悔没早点知道
  8. 治疗贫血的几款食疗方
  9. 米的换算单位和公式_米的单位换算公式大全二年级(简便易记的单位米换算方法)...
  10. 淘宝多重优惠的订单退其中一件商品的退款金额设想