Golang第一课
Go语言(Golang)最初是由Robert Griesemer, Rob Pike, 和 Ken Thompson在谷歌于2007年开发出来的编程语言。Go编程语言是静态类型语言,语法类似于C语言,它提供了垃圾收集,类型安全,动态的输入能力,还有很多先进的内置类型,例如,可变长度数组和映射(键-值对)。
Go本地环境设置
windows下
下载所需版本的go语言安装包,默认安装后,go目录在c盘下,则不用配置goroot。需要配置GOPATH,一般放在D:\goproject配置完环境变量,进入cmd输入go env检查环境配置是否成功。
linux下
下载
wget https://storage.googleapis.com/golang/go1.7.5.linux-amd64.tar.gz
解压
tar -zxf go1.7.5.linux-amd64.tar.gz -C /usr/local
验证安装结果
进入/usr/local/go输入bin/go version
输出版本信息则安装完成
环境变量设置
4个需要设置:GOROOT、GOPATH、GOBIN、PATH
设置到一个profile文件中(~/.bash_profile单一用户或者/etc/profile所有用户)
export GOROOT=/usr/local/go
export GOPATH=~/golib:~/goproject
export GOBIN=~/gobin
export PATH=$PATH:$GOROOT/bin:$GOBIN
其中GOROOT指安装目录
GOPATH指工作目录
GOBIN指编译目录
PATH是用来追加环境变量值以免覆盖
最后别忘了source /etc/profile来立即生效
验证
go version
基本规则
工作区和GOPATH
工作区放Go源码文件(除命令源码文件)

src 源码
pkg 归档文件(代码包)
平台相关目录 GOOS操作系统GOARCH计算机构
bin 当前工作区的Go程序的可执行文件,当存在GOBIN环境变量时该目录无意义
Go语言-源码文件的分类和含义
Go源码文件
.go后缀,内容以Go语言代码组织的文件,多个Go源码文件需要用代码包组织起来
三类
命令源码文件(main代码包)、
库源码文件,
测试源码文件(名称_test.go)
代码包
编译归档最基本单位,权限控制,代码包声明(导入路径最右子路径)
带别名导入import str "strings"别名为str,本地化导入import . "strings",导入包中函数可以不写前缀,仅仅初始化import _ "strings"不能使用代码包的内容
导入代码包之后,首先对所有全局变量进行求值,然后执行导入的代码包的初始化函数init,然后执行本地代码包的init,只执行一次,后执行main函数
命令基础
最基本的go run go build go install go get
go run
运行命令源码文件,一个命令源码文件多个库
源码->编译->临时文件->可执行文件、归档文件
-a 强制编译 -n 不执行,仅打印所需命令 -p n 并行编译,其中n为并行的数量,最好设为cpu核数
-v 列出别编译的代码包的名称 -work 显示编译时创建的临时工作目录的路径,并不删除它
-x打印编译过程中所需运行的命令,并执行
go build
编译当前源码文件或者代码包,编译命令源码文件生成可执行文件
加入代码包导入路径,代码包及其依赖会被编译,
-a所有涉及代码包重新编译,不加只编译归档文件
加若干源码文件,只会编译这些文件
go install
编译并安装代码包或源码文件
安装代码包时,在当前工作区pkg/<平台相关目录>下生成归档文件
安装命令源码未见会在当前工作区的bin目录或$GOBIN目录下生成可执行文件
go build和go install的区别
go install编译源码后还会将可执行文件或库文件安装到约定的目录($gopath/bin/)下。go build 在当前目录下生成可执行文件。
go build hello.go生成的可执行文件为源文件名字去掉.go后缀 不加文件名生成的是所在目录的名字的可执行文件。
go install 生成的可执行文件以其所在目录的名字命名
go install将可执行文件安装到与src同级别的bin目录下,bin目录由goinstall自动创建
go install将可执行文件以来的各种pacage编译完后,放在与src同级别的pkg目录下,生成.a静态共享库文件。
go get
从远程代码仓库上下载安装代码包
下载到$GOPATH中包含的第一个工作区目录的src目录中然后安装
-d只执行下载,不执行安装
-fix代码包修正
-u 更新本地代码包
为避免FQ,要下载依赖包
可以这样
获取 golang.org/x/net 包,其实只需要以下步骤:
mkdir -p $GOPATH/src/golang.org/x cd $GOPATH/src/golang.org/x git clone https://github.com/golang/net.git
一些基础
惯例:
包名与导入路径最后一个目录一致
使用导入包函数,函数首字母大写
基本类型
bool
string
int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
byte // uint8 的别名
rune // int32 的别名
// 代表一个Unicode码
float32 float64
complex64 complex128
未初始化会被赋零值
数值类型:0
布尔类型:false
字符串类型:“”
类型转换
表达式T(v)将值v转换成类型T

浙公网安备 33010602011771号