首先下載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,能夠選擇中斷哪個循環。