go语言学习-常用命令
前面的文章中记录了安装 golang 和配置开发环境,本文将学习的 go 命令行命令以及使用场景。
查看可用命令
直接在终端中输入 go help 即可显示所有的 go 命令以及相应命令功能简介,主要有下面这些:
- build: 编译包和依赖
- clean: 移除对象文件
- doc: 显示包或者符号的文档
- env: 打印go的环境信息
- bug: 启动错误报告
- fix: 运行go tool fix
- fmt: 运行gofmt进行格式化
- generate: 从processing source生成go文件
- get: 下载并安装包和依赖
- install: 编译并安装包和依赖
- list: 列出包
- run: 编译并运行go程序
- test: 运行测试
- tool: 运行go提供的工具
- version: 显示go的版本
- vet: 运行go tool vet
命令的使用方式为: go command [args], 除此之外,可以使用go help <command> 来显示指定命令的更多帮助信息。
在运行 go help 时,不仅仅打印了这些命令的基本信息,还给出了一些概念的帮助信息:
- c: Go和c的相互调用
- buildmode: 构建模式的描述
- filetype: 文件类型
- gopath: GOPATH环境变量
- environment: 环境变量
- importpath: 导入路径语法
- packages: 包列表的描述
- testflag: 测试符号描述
- testfunc: 测试函数描述
同样使用 go help <topic>来查看这些概念的的信息。
build 和 run 命令
就像其他静态类型语言一样,要执行 go 程序,需要先编译,然后在执行产生的可执行文件。go build 命令就是用来编译 go程序生成可执行文件的。但并不是所以的 go 程序都可以编译生成可执行文件的, 要生成可执行文件,go程序需要满足两个条件:
- 该go程序需要属于main包
- 在main包中必须还得包含main函数
也就是说go程序的入口就是 main.main, 即main包下的main函数, 例子(hello.go):
package main
import "fmt"
func main() {
fmt.Println("Hello World!")
}
编译hello.go,然后运行可执行程序:
$ go run hello.go # 将会生成可执行文件 hello
$ ./hello # 运行可执行文件
Hello World!
上面就是 go build 的基本用法,另外如果使用 go build 编译的不是一个可执行程序,而是一个包,那么将不会生成可执行文件。
而 go run 命令可以将上面两步并为一步执行(不会产生中间文件)。
$ go run hello.go
Hello World!
上面两个命令都是在开发中非常常用的。
此外 go clean 命令,可以用于将清除产生的可执行程序:
$ go clean # 不加参数,可以删除当前目录下的所有可执行文件
$ go clean sourcefile.go # 会删除对应的可执行文件
fmt 和 doc 命令
go 语言有一个褒贬不一的特性,就是对格式的要求很严格,我是很喜欢这个特性的,因为可以保持代码的清晰一致,编译组合开发,并且go还提供了一个非常强大的工具来格式化代码,它就是 go fmt sourcefile.go, 不过通常其实不需要我们手动调用,各种编辑器都可以帮助我们自动完成格式化。
go doc 命令可以方便我们快速查看包文档,go doc package 命令将会在终端中打印出指定 package 的文档。
另外有一个与 go doc 命令相关的命令是 godoc, 可以通过它启动我们自己的文档服务器:
godoc -http=:8080
然后我们就可与在浏览器localhost:8080中查看go文档了
get 命令
这个命令同样也是很常用的,我们可以使用它来下载并安装第三方包, 使用方式:
go get src
从指定源上面下载或者更新指定的代码和依赖,并对他们进行编译和安装,例如我们想使用 beego 来开发web应用,我们首先就需要获取 beego:
go get github.com/astaxie/beego
这条命令将会自动下载安装 beego 以及它的依赖,然后我们就可以使用下面的方式使用:
package main
import "github.com/astaxie/beego" # 这里需要使用 src 下的完整路径
func main() {
beego.Run()
}
install 命令
用来编译和安装go程序,我们可以将它与 build 命令对比:
| install | build | |
|---|---|---|
| 生成的可执行文件路径 | 工作目录下的bin目录下 | 当前目录下 |
| 可执行文件的名字 | 与源码所在目录同名 | 默认与源程序同名,可以使用-o选项指定 |
| 依赖 | 将依赖的包放到工作目录下的pkg文件夹下 | - |
test 命令
顾名思义,用来运行测试的命令,这种测试是以包为单位的。需要遵循一定规则:
- 测试源文件是名称以“_test.go”为后缀的
- 测试源文件内含若干测试函数的源码文件
- 测试函数一般是以“Test”为名称前缀, 并有一个类型为“testing.T”的参数。
其他命令
其他命令不会经常使用,这里就不介绍了,真的用到的时候,直接使用 go help command 即可查看相关命令。
go语言学习-常用命令的更多相关文章
- go语言学习-常用命令(四)
go常用命令 go get:获取远程包(得装git) go run:直接运行程序(写代码时调试用) go build:测试编译,检查是否有编译错误 go fmt:格式化代码(一般不咋用,IDE都自带了 ...
- linux系统学习(常用命令)
今天调休,闲来无事,研究一下linux系统. Linux常用命令: 一:文件管理 ctrl+alt:在虚拟机与windows之间切换ctrl+g:进入linux输入模式 pwd:查看当前目录 ls:列 ...
- memcached学习——常用命令+基于java客户端的3种简单实现(二)
常用命令: memcached设计的原则就是简单,所以支持的命令也不是特别多~ 1.查看memcached的状态,主要用于分析内存的使用状况.优化内存分配等 stats 查看memcached的运行状 ...
- Linux学习常用命令大全
Linux知识大全 转载须说明出处,整理不易 一.常用的linux命令 1.2 ls 命令说明 1.3 ls 通配符的使用 2.切换目录cd命令 3.创建和删除文件操作 4.移动和拷贝文件 4.3.m ...
- 重学Python - Day 07 - python基础 -> linux命令行学习 -- 常用命令 一
常用命令和使用方法如下: man man 命令 #可以查询命令的用法 cat 和 tac cat是正序显示文件内容 tac是倒叙显示文件内容 sort 对文件内容排序 uniq 忽略文件中重复行 hi ...
- Linux入门学习 常用命令
cd命令 功能是切换到指定的目录:命令格式:cd [目录名]有几个符号作为目录名有特殊的含义:"/"代表根目录.".."代表上一级目录."~" ...
- linux 学习 常用命令
以下命令是本人的CentOS6.5系统 一.linux个目录的作用 #linux个目录的作用 /bin 所有用户都可使用的命令 /sbin 超级用户(root)可以使用的命令 /boot 系统目录建 ...
- Linux学习 -- 常用命令
目录处理命令 ls mkdir rmdir pwd cd cp mv rm 文件处理命令 touch cat tac more less head tail 连接命令 ln 软连接 ln -s 类似于 ...
- git学习--常用命令
1.初始化一个 Git 仓库 git init <directory> //参数 directory:作为Git仓库的目录 2.从Git 仓库中拷贝项目 git clone <rep ...
随机推荐
- JavaScript学习 - 基础(四) - 控制语句/异常处理
控制语句 if-else 语句 <script> //控制语句 //if-else格式: var x = 1 if(x==1){ console.log("this is if& ...
- plist反序列化
// // ViewController.m // 03-plist文件的一个反序列化 // // Created by jerry on 15/9/28. // Copyright (c) ...
- 基于Python的机器学习实战:KNN
1.KNN原理: 存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一个数据与所属分类的对应关系.输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应 ...
- Statistics in Python
Statistics in Python Materials for the “Statistics in Python” euroscipy 2015 tutorial. Requirements ...
- 笔记软件 notion
笔记软件 notion : https://www.notion.so 注册:zengxinle@126.com 团队:Hopesun
- springboot系列二、springboot项目搭建
一.官网快速构建 1.maven构建项目 1.访问http://start.spring.io/ 2.选择构建工具Maven Project.Spring Boot版本2.1.1以及一些工程基本信息, ...
- java中集合的组成及特点
1:集合 Collection(单列集合) List(有序,可重复) ArrayList 底层数据结构是数组,查询快,增删慢 线程不安全,效率高 Vector 底层数据结构是数组,查询快,增删慢 线程 ...
- ODOO引用Echarts数据展示
作为一个后端开发,首先想到的是将需要的数据进行处理反馈给前端. 具体如下: 然后就是专门的echarts模块(我这样写主要是因为echarts会用到的地方比较多,后续直接调用) 1. 2.echart ...
- JSON和JSONP详解
什么是JSON JSON是一种基于文本的数据交换方式,或者叫做数据描述格式,你是否该选用他首先肯定要关注它所拥有的优点. JSON的优点: 1.基于纯文本,跨平台传递极其简单: 2.Javascrip ...
- sklearn.model_selection模块
后续补代码 sklearn.model_selection模块的几个方法参数