golang学习笔记--包导入及go 常用命令及参数
包导入:包导入路劲即代码包在工作区的src目录下的相对路径。
同一个源码文件中导入的多个代码包的最后一个元素不能重复,否则引起编译错误,如果只导入不使用,同样会引起编译错误
若想导入最后一个元素名相同的,则需为其中一个起个别名
eg
- import(
- "github.com/Sirupsen/logrus"
- mylogrus "gopcp.v2/helper/log/logrus"
- )
如果想不加前缀而直接使用某个依赖包中的程序实体,就可以用“.” 来替代别名
- import (
- . ”gopcp.v2/helper/log/logrus"
- )
当前源码文件中,可直接使用程序实体
- var logger = NewLogger("gopcp")
标识符首字母大写:公有
标识符首字母小写:私有
标识符首字母不可为数字或者下划线
如果只想初始化某个代码包,而不需要再当前源码文件中使用那个代码包中任何程序实体,就可以用“_”来替代别名。
- import (
- _ ”gopcp.v2/helper/log/logrus"
- )
包初始化:
- func init(){
- fmt.PrintLn("Initialize...")
- }
对于每一个代码包来说,其中的所有全局变量的初始化,都会在代码包的初始化函数执行前完成,初始化函数都会在main函数执行前执行完毕。
- package main // 命令源码文件必须在这里声明自己属于main包。
- import ( // 引入了代码包fmt和runtime。
- "fmt"
- "runtime"
- )
- func init() { // 代码包初始化函数。
- fmt.Printf("Map: %v\n", m) // 格式化的打印。
- // 通过调用runtime包的代码获取当前机器的操作系统和计算架构。
- // 而后通过fmt包的Sprintf方法进行格式化字符串生成并赋值给变量info。
- info = fmt.Sprintf("OS: %s, Arch: %s", runtime.GOOS, runtime.GOARCH)
- }
- // 非局部变量,map类型,且已初始化。
- var m = map[int]string{1: "A", 2: "B", 3: "C"}
- // 非局部变量,string类型,未被初始化。
- var info string
- func main() { // 命令源码文件必须有的入口函数,也称主函数。
- fmt.Println(info) // 打印变量info。
- }
输出:
Map: map[1:A 2:B 3:C]
OS: windows, Arch: amd64
go命令:
- go build: 编译代码包或go 语言源码文件,生成可执行文件(同级目录下)
- go clean: 清除因执行其他go命令而遗留下来的临时目录和文件
- go doc: 用于显示go 语言代码包以及程序实体的文档。
- go env: 打印go 语言相关的环境信息
- go fix: 用于修正指定代码包中的源码文件中包含的过时语法和代码调用。(升级时)
- go fmt : 格式化指定代码包中的源文件
- go generate: 用于识别指定代码包中源码文件中的go:generate注释,并执行其携带的任意命令。
- go get: 用于下载、编译并安装指定的代码包及其依赖包
- go install: 用于编译并安装指定的代码包及其依赖包。安装命令源码exe文件到GOBIN指定的目录中,库源码文件产生的.a文件到pkg子目录下
- go list: 用于显示指定代码包的信息
- go run: 用于编译并允许指定的命令源码文件。
- go test: 用于测试指定的代码包
- go tool: 用于运行go 语言的特殊工具
- go vet: 用于检测指定代码包中的go 语言源码,并报告发现可疑代码问题,该命令提供了除编译以外的又一个程序检查方法,可用于找到程序中的潜在错误。
- go version: 用于显示当前安装的go 语言版本信息以及计算环境
- -a 用于强行重新编译所有涉及go 语言代码包
- -n 使命令仅打印其执行过程中用到的所有命令,而不真正执行它们,如果只想查看和验证命令的执行过程,而不想改变任何东西,可用它
- -race: 用于检测并报告指定go 语言程序中存在的数据竞争问题。(并发的检测手段之一)
- -work: 用于打印命令执行时生成和使用的临时工作目录的名字,且命令执行完成后不删除它。不标记,则会删除临时工作目录
- -x 打印其执行过程中用到的所有命令,同时执行它们
直接执行go tool命令,可以看到这些特殊的工具
pprof: 用于以交互的方式访问一些性能概要文件。命令将会分析给定的概要文件,并根据要求提高可读性的输出信息。这个工具可以分析的概要文件包括CPU概要文件、内存概要文件和程序阻塞概要文件。这些包含Go 程序运行信息的概要文件,可以通过标准库代码包runtime和runtime/pprof中的程序来生成。
Trace: 用于读取Go程序痕迹文件,并以图形化的方式展示出来,它能够让我们深入了解go 程序在运行过程中的内部情况。比如,当前进程中堆的大小以及使用情况。有又比如,程序中的多个goroutine是怎样被调度的,以及它们在某个时刻被调用的原因。go 程序痕迹文件可以通过标准库包runtine/trace和net/http/pprof中的程序来生成。
Go 命令教程地址:
https://github.com/Gohackers/go_command_tutorial
golang学习笔记--包导入及go 常用命令及参数的更多相关文章
- Linux学习笔记(一):常用命令
经过统计Linux中能够识别的命令超过3000种,当然常用的命令就远远没有这么多了,按照我的习惯,我把已经学过的Linux常用命令做了以下几个方面的分割: 1.文件处理命令 2.文件搜索命令 3.帮助 ...
- Linux学习笔记(一):常用命令(1)
经过统计Linux中能够识别的命令超过3000种,当然常用的命令就远远没有这么多了,按照我的习惯,我把已经学过的Linux常用命令做了以下几个方面的分割: 1.文件处理命令 2.文件搜索命令 3.帮助 ...
- Linux学习笔记(二)Linux常用命令:权限、目录操作以及常见目录作用
一.Linux命令格式 命令 [选项] [参数] 注:(1)简化选项和完整选项 -a --all (2)当有多个选项是可以写在一起 -l -a 可以写为-la 二.权限 -rw-r--r--.&quo ...
- Linux学习笔记 - Linux快捷操作及常用命令
一.快捷键 剪切光标前的内容 Ctrl + u 剪切光标至行末的内容 Ctrl + k 粘贴 Ctrl + u 或 Ctrl +k 的内容 Ctrl + y 移动光标到行末 Ctrl + e 移动光标 ...
- docker学习笔记(2)——docker常用命令
参考博客: 1.官网教程:https://docs.docker.com/reference/ 可以一边敲命令一边对照官网学习,也可以通过阅读docker --help来学习 2..视频教程:http ...
- Linux学习笔记(8)Linux常用命令之网络命令
(1)write write命令用于给指定用户发信息,以Ctrl+D保存结束,所在路径为/usr/bin/write,其语法格式为: write [用户名] 注:只能给在线用户发送. 例:新建ws用户 ...
- Linux学习笔记(7)Linux常用命令之压缩解压命令
(1)gzip gzip命令用于压缩文件,英文原意为GNU zip,所在路径/bin/gzip,其语法格式为: gzip [文件] 压缩后的文件格式为.gz. 例:将/etc目录下的services文 ...
- Linux学习笔记(一):常用命令(2)
3.帮助命令 A,帮助命令:man B,其他帮助命令 3.1,格式:man [命令名] 查看命令拥有哪个级别的帮助: ...
- Linux学习笔记(六)Linux常用命令:关机、重启以及系统运行级别
一.shutdown命令 shutdown [选项] [时间] 常用选项 -c 取消前一个关机命令 -h 关机 -r 重启 shutdown命令关机或重启会保存当前系统正在使用的资源,因此关机或重启最 ...
随机推荐
- WorkFlow三:CLASS事件触发工作流
1.创建关键字段结构.这里没有新建,使用前面创建的结构: 2.SE24创建类:保存激活. 3.接口里添加IF_WORKFLOW并激活.(其他两个激活就出现了,不用管) 4.在属性页签中定义两个属性,其 ...
- oracle linux 7 yum报错解决:COULD NOT RESOLVE HOST: YUM.ORACLE.COM
虚拟机中yum报错 [root@localhost ~]# yum -y install oracle-rdbms-server-11gR2-preinstall Loaded plugins: la ...
- MySQL修炼之路一
1. MySQL概述 1. 什么是数据库 存储数据的仓库 2. 都有哪些公司在用数据库 金融机构.游戏网站.购物网站.论坛网站 ... ... 3. 提供数据库服务的软件 1. 软件分类 MySQL. ...
- tf.Variable()、tf.get_variable()和tf.placeholder()
1.tf.Variable() tf.Variable(initializer,name) 功能:tf.Variable()创建变量时,name属性值允许重复,检查到相同名字的变量时,由自动别名机制创 ...
- 【转】Pandas学习笔记(三)修改&添加值
Pandas学习笔记系列: Pandas学习笔记(一)基本介绍 Pandas学习笔记(二)选择数据 Pandas学习笔记(三)修改&添加值 Pandas学习笔记(四)处理丢失值 Pandas学 ...
- USACO Party Invitations
洛谷 P3068 [USACO13JAN]派对邀请函Party Invitations 洛谷传送门 JDOJ 2343: USACO 2013 Jan Silver 3.Party Invitatio ...
- 常用dos命令(3)
网络命令 ping 进行网络连接测试.名称解析 ftp 文件传输 net 网络命令集及用户管理 telnet 远程登陆 ipconfig显示.修改TCP/IP设置 msg 给用户发送消息 arp 显示 ...
- 导入数据任务(id:373985)异常, 错误信息:解析导入文件错误,请检查导入文件内容,仅支持导入json格式数据及excel文件
小程序导入,别人导出的数据库json文件,错误信息如下: 导入数据库失败, Error: Poll error, 导入数据任务(id:373985)异常,错误信息:解析导入文件错误,请检查导入文件内容 ...
- MapReduce 程序mysql JDBC驱动类找不到原因及学习hadoop写入数据到Mysql数据库的方法
报错 :ClassNotFoundException: com.mysql.jdbc.Driver 需求描述: hadoop需要动态加载个三方jar包(比如mysql JDBC 驱动包),是在MR结束 ...
- Spring Cloud微服务安全实战_1-1_导学
这两年微服务是一个很火的话题 .在java语言的体系里,现在最火的就是SpringCloud. 本系列文章主要不是讲:怎么使用SpringSpringCloud组件搭建一个微服务的体系,如服务的认证注 ...