golang

https://godoc.orgpython

https://github.com/avelino/awesome-gogit

命令源碼文件(main)與庫源碼文件處同一代碼包中,不能go build /go install,github

同一代碼包中能夠有多個命令源碼文件,能夠go run,但不能build/install,因此一個命令一個包,build 生成在當前目錄,intall 生成在bin或/pkg目錄golang

若是文件名與package名不一樣,文件第一行必定要package xxx數組

import(app

. 「xx」 #能夠使用xx中的內容,就不用前綴了函數

_ 「xx」 #只觸發了init操做,什麼也沒導入ui

)編碼

func init(){} 包初始化方法 在main()以前完成,且只執行一次spa

全局變量初始化->init->main

類型斷言 x.(t) t爲interface

interface{}(123).(int)

[…]string{「go」,」python」} #不寫長度有,由初始值肯定

go 語方中中只有傳值,沒有傳引用

delete(mapname,key) #刪除map的key

 

go test #文件爲xx_test.go ; testxx(t *testing.T,xx)

GOROOT /GOPATH

go get 下載到gopath指定第一個,並完成構建和安裝

export PATH=$PATH:${GOPATH//://bin:}/bin
export GOBIN=

go env

https://github.com/hyper-carrot/go_command_tutorial

golang有兩個特殊的包名稱 all,std
all 表明GOPATH中全部工做區路徑中全部代碼包,std 標準庫中的全部代碼
import/package
chan/func/interface/map/struct/const/type/var
go/select/break/case/continue/defalut/defer/else/fallthrough/for/goto/if/range/return/switch

:= //申明一個變量,同時賦值,只能在函數體內用

切片的長度就是它所包含的元素個數。

defer 語句會將函數推遲到外層函數返回以後執行

切片的容量是從它的第一個元素開始數,到其底層數組元素末尾的個數

https://go-zh.org/pkg/builtin/
for 循環的 range 形式可遍歷切片或映射
godoc -http=:8080

4form

r.Form["username"]也可寫成r.FormValue("username")。調用 r.FormValue 時會自動調用
r.ParseForm,因此沒必要提早調用。r.FormValue只會返回同名參數中的第一個,若參數不存
在則返回空字符串

getint,err:=strconv.Atoi(r.Form.Get("age"))

//中文

if m, _ := regexp.MatchString("^[\\x{4e00}-\\x{9fa5}]+$", r.Form.Get("realname")); !m {
return false
}

maps, slices 和 channels 引用語義,用make分配空間

struct,array等值類型,用new分配空間

x := []int{1, 2, 3}
y := []int{4, 5, 6}

x = append(x, y...)

int( x )   //x 轉爲int

<-chan int (x ) // x轉爲chan int,再取數據

(<-chan int )(x ) //x 轉爲只能取數據的chan int

Go語言的字符串是UTF-8編碼,其底層使用4個字節表示,也就是32 bit

func (x type) string() string{}  // 定義String()方法,自定義了格式化指令%v的輸出

相關文章
相關標籤/搜索