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

 

 

posted @ 2018-08-31 22:41  wongds  阅读(93)  评论(0)    收藏  举报