熱門程式語言之GO
Go語言入門實戰
基礎語法入門
概述
理念:Go是google在2009年釋出的第二款開源語言,Go專門針對多處理器系統應用程式進行優化,開發者期待它的開發效率和指令碼語言一樣快,期待它的執行速度可以媲美c或c++
-
Go語言優勢
-
簡潔、快速、安全
-
並行、有趣、開源
-
記憶體管理,陣列安全,編譯迅速
-
-
Go語言劣勢
-
缺少框架
-
錯誤處理
-
軟體包管理
-
-
Go目前的應用
-
Docker
-
Codis
-
Glow類似於Hadoop
-
Cockroach
-
Go語言Hello word
-
在官網下載Go安裝包,安裝配置環境,下載LiteIde
-
Go語言的入口在main包下的main函式
//這裡不能使用單引號表示字串,main包main方法是go語言入口 package main import "fmt" func main() { fmt.Print("hello word") }
-
Go語言要安裝別人的包需要先配置Gopath包含( src、pkg、bin)目錄
-
window下:set GOPATH=d:/go_libsou
-
go get github.com/astaxie/beego//獲取beego框架儲存在gopath
-
自己寫的類和工具也可以放在gopath下引用
-
GO語法與函式
-
Go語言常用關鍵字
-
5c88c2b56d644
程式設計
-
-
變數定義
-
var x int //定義變數時用var關鍵字變數型別在後邊
package main import "fmt" func main() { var x int //定義變數格式 x = 1 //簡短申明定義多個變數,簡短申明沒法在函式體外部使用 y, z, l := 2, "golang", 3 fmt.Printf("%d %d %s %d", x, y, z, l) }
-
-
資料型別
-
bool
-
rune
-
int8|int16|int32|int64
-
byte
-
uint8|uint16|uint32|uint64
-
float32|float64
-
complex64|complex128
-
var a complex64 = 6 + 2i fmt.Println(a * a)
-
-
string
-
array|slice
-
//array var x [10]int x[0]=1 fmt.Printf("%v",x) y:=[10]int{1,2,4,6,7} fmt.Println("v%", len(t))
-
//slice 動態陣列 var fslice []int //make用於內建型別的記憶體分配 func foo(n int) []byte { bar := make([]byte, n) } o := make([]int, 3, 5)//3代表長度,5代表容量 o=append(o,5,6,7,6,7,9,0,1)//動態分配容量可擴增 k:=x[1:3]
-
-
map
-
var student map[string]float32 student = make(map[string]float32)//map必須make分配容量 student["zhangsan"] = 18.2 fmt.Printf("%v", student) student :=make(map[string]float32)//簡短申明
-
-
-
流程控制
-
for迴圈
var q int sum := 0 for q = 1; q <= 100; q++ { sum += q } fmt.Println(sum) //簡短申明迴圈 for x<100{ sum+=x x++ } for{}//代替while迴圈
-
switch
x:=1 switch x{ case 1: //break //預設新增break fallthrough //繼續往下 }
-
range關鍵字迴圈遍歷
t := [10]int8{1, 2, 4, 6, 7} for i, v := range t { fmt.Println(i, v) } u :=make(map[string]int) u["zhangsan"]=78 u["wangwu"]=76 for i,v:=range u{ fmt.Println(i,v) } //可以遍歷字串
-
-
函式
func swap(a int, b int) (m int, n int) { return b, a } func add(a *int) *int { *a = *a + 1 return a } func main() { a := 3 // b := 2 // a, b = swap(a, b) // fmt.Printf("%d %d", a, b) add(&a) fmt.Printf("%d", a) }