首先下载Go语言的开发安装包,无论是在官方网站或者国内的Golang镜像都是能够的,注意区分64位和32位的安装包。linux
tar zxvf
进行解压。mv go /usr/src/go
,把解压后的go
目录移动到执行的目录。这样就在/usr/src/go
中存放了go
语言开发须要的各类部分。~/.bashr
文件中增长一些环境变量:export GOPATH=~/Applications/Go export GOROOT=/usr/src/go export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
source ~/.bashr
,加载bash
设置,使之生效。至此,GO语言的开发环境就搭建完成了。bash
进入到以前创建好的src
目录中,新建目录结构hello
,而后在hello
目录中新建main.go
。网站
package main import "fmt" func main() { fmt.Println("hello world!") }
而后在命令行中,经过命令go run main.go
来运行这个go
语言程序。或者能够先经过go build
先生成可执行程序,而后再运行。ui
若是在
go build
时,指定某个go
文件,那么仅仅构建这一个模块,生成的名字与该go
文件的名字相同。
若是不指定构建的模块,则构建整个工程,生成的名字与工程目录相同。命令行
变量至关因而对一块数据存储空间进行命名,程序能够经过定义一个变量来申请一块数据存储空间,以后能够经过引用变量来使用这块存储空间。code
GO语言变量的声明:blog
var v1 int var v2 string var v3 [10]int var v4 []int var v5 struct { f int } var v6 *int var v7 map[string]int var v8 func(a int) int var ( v1 int va string )
GO语言变量的初始化:
对于声明变量的同时须要初始化的场景,var
关键字无关紧要:作用域
var v1 int = 10 var v1 = 10 v1 := 10
对于第三种方式,不能声明全局变量
表示同时进行变量的声明和初始化
定义在:=
左侧的变量,不能是已经被声明过的变量开发
总结:v8
GO语言的声明用关键字
var 变量名 类型
GO语言赋值,不是用关键字也不使用类型
GO语言声明同时初始化,用上面三种方式,不能使用v1 = 10
,由于它表示赋值,不表示变量的声明+初始化
GO语言的声明方式不会混淆。
GO语言变量的初始化和变量赋值是不一样的概念,注意区分。
package main import "fmt" func main() { a := 3 b := 2 if a, c := 2, 5; a < b && b == 2 { fmt.Println("a<b") fmt.Println(a) fmt.Println(c) }else { fmt.Println("a>b") fmt.Println(a) fmt.Println(c) } fmt.Println(a) } /* output: a>b 2 5 3 */
在GO语言的条件语句中,能够有一次变量的
赋值
或者声明初始化
语句,以后分号结束。
在if-else if-else
语句块中,其中的变量属于同一做用域,出了该做用域其内定义的变量将失效。
GO语言循环中只支持for关键字,基本用法与C和C++中很是接近:
sum := 0 for i := 0; i < 10; i++ { sum += i }
for
后面的条件表达式不须要用括号包起来,GO语言还支持for
语言的无线循环场景:
for { sum++ if sum > 100 { break } }
在for
的条件表达式中支持多重赋值:
a := []int{1, 2, 3, 4, 5, 6} for i, j := 0, len(a) - 1; i < j; i, j = i + 1, j - 1 { a[i], a[j] = a[j], a[i] }
GO语言不支持在循环条件中以逗号为间隔的多个赋值语句,必须使用平行赋值的方式来初始化多个变量。
GO语言的for
循环一样支持continue和break来控制循环,可是它提供一个更高级的break,能够选择中断哪个循环。