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 命令对比:
1.生成的可执行文件路径
2.可执行文件的名字
3.依赖
install
·工作目录下的bin目录下
·与源码所在目录同名
·将依赖的包放到工作目录下的pkg文件夹下
build
·当前目录下
·与源码所在目录同名 默认与源程序同名,可以使用-o选项指定
·-
test 命令
顾名思义,用来运行测试的命令,这种测试是以包为单位的。需要遵循一定规则:
·测试源文件是名称以“_test.go”为后缀的
·测试源文件内含若干测试函数的源码文件
·测试函数一般是以“Test”为名称前缀, 并有一个类型为“testing.T”的参数。
其他命令
其他命令不会经常使用,真的用到的时候,直接使用 go help command 即可查看相关命令。
Go语言常用命令的更多相关文章
- Go语言常用命令介绍
go build go build 命令主要是用于测试编译.在包的编译过程中,若有必要,会同时编译与之相关联的包. 如果是普通包,当你执行go build命令后,不会产生任何文件. 如果是main包, ...
- C语言常用命令
## 基本流程:创建——编辑——编译.链接——执行$ touch 1-1.c$ vim 1-1.c # include <stdio.h>int main{printf("... ...
- R语言常用命令集合
help.start()//打开帮助文档 q()//推出函数 ls()//返回处于现在名空间的对象名称 rm()//清楚对象:rm(list=ls())清除所有内存数据 gc()//垃圾回收数据 sq ...
- R语言常用命令
data() 列出当前已安装包中所有可用的实例数据集 help("name") 查看帮助文档 summary()
- Linux 下 expect 脚本语言中交互处理常用命令
Linux 下 expect 脚本语言中交互处理常用命令 1. #!/usr/bin/expect 告诉操作系统脚本里的代码使用那一个 shell 来执行.这里的 expect 其实和 Linux 下 ...
- go语言学习-常用命令(四)
go常用命令 go get:获取远程包(得装git) go run:直接运行程序(写代码时调试用) go build:测试编译,检查是否有编译错误 go fmt:格式化代码(一般不咋用,IDE都自带了 ...
- [No0000A5]批处理常用命令大全
1.Echo 命令打开回显或关闭请求回显功能,或显示消息.如果没有任何参数,echo 命令将显示当前回显设置.语法echo [{on|off}] [message]Sample: echo off e ...
- 20145222《信息安全系统设计基础》Linux常用命令汇总
学习Linux时常用命令汇总 通过Ctrl+f键可在该网页搜索到你想要的命令. Linux中命令格式为:command [options] [arguments] //中括号代表是可选的,即有些命令不 ...
- 分布式缓存技术redis学习系列(二)——详细讲解redis数据结构(内存模型)以及常用命令
Redis数据类型 与Memcached仅支持简单的key-value结构的数据记录不同,Redis支持的数据类型要丰富得多,常用的数据类型主要有五种:String.List.Hash.Set和Sor ...
随机推荐
- 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之ceph部署-07
自动化kolla-ansible部署ubuntu20.04+openstack-victoria之ceph部署-07 欢迎加QQ群:1026880196 进行交流学习 近期我发现网上有人转载或者复制原 ...
- jdbcTemplate事务管理
1.基于TransactionTemplate的编程式事务管理 Spring之路(39)–基于TransactionTemplate的编程式事务管理 本篇通过TransactionTemplate类, ...
- 分页系列之一:SQL Server 分页存储过程
以下为最基本的代码结构,SQL Server 2012 开始支持 CREATE PROCEDURE procXXX @Page int, --当前页码,从1开始 @PageSize int --每页记 ...
- kafka管理工具-kafka manager安装
kafka-manager 简介 # 项目信息 https://github.com/yahoo/kafka-manager 安装 环境要求: Kafka 0.8.. or 0.9.. or 0.10 ...
- ubuntu 14.04.5 编译Android 4.4.4 r1源码(最新)
本文博客链接:http://blog.csdn.net/qq1084283172/article/details/54426189 吐槽:ubuntu系统真是让人又爱又恨,也有可能是VMware Wo ...
- POJ1151基本的扫描线求面积
题意: 给定n个矩形的对角坐标,分别是左下和右上,浮点型,求矩形覆盖的面积. 思路: 基本的线段树扫描线求面积,没有坑点,不解释了,提示一点,有的题尤其是线段树扫描线的题需要离散 ...
- (转)VMware中桥接模式与NAT模式的区别
bridged networking(桥接模式) 在这样的模式下.VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它能够訪问网内不论什么一台机器. 在桥接模式下.你须要手工为虚拟系统配置 ...
- 【maven】pom.xml中"spring-boot-maven-plugin"报红问题
问题原因 插件下载速度太慢了,即是从国外的中央仓库里下载的. 没有刷新maven spring-boot-maven-plugin没加版本号(有些电脑不加版本号,也是不会爆红的) 问题解决 maven ...
- base标签的作用
base标签可以自定义当前页面的相对路径,不受浏览器当前地址栏的影响,以base标签定义的地址为准 (只对相对路径起作用) <head> <meta charset="UT ...
- 本地Markdown上传图片
本地Markdown上传图片 1.上传本地markdown文件到博客园 使用工具pycnblog 下载:https://github.com/dongfanger/PyCnblog 查看READ ME ...