這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
package 指明源檔案所在的包
func 用於定義函數
go裡面除了for迴圈的初始化用到;,其他大部分都不需要
go中沒有while迴圈,不過可以利用 for condition來類比while
編譯:
go builde 編譯的檔案名稱
定義一個變數,比如字串
var s string = ""
go也自動推匯出類型
var s = "";
也可以 s:=""
:=用在值聲明並且初始化
05 package main07 import (08 "os"09 "flag" // command line option parser10 )12 var omitNewline = flag.Bool("n", false, "don't print final newline")14 const (15 Space = " "16 Newline = "\n"17 )19 func main() {20 flag.Parse() // Scans the arg list and sets up flags21 var s string = ""22 for i := 0; i < flag.NArg(); i++ {23 if i > 0 {24 s += Space25 }26 s += flag.Arg(i)27 }28 if !*omitNewline {29 s += Newline30 }31 os.Stdout.WriteString(s)32 }
go語言除了C有的int ,float,還有int8,int32,int32跟int同樣大小,但是跟int不同,byte跟int8同樣大小,類型也一樣
s:="string"有點類似於C語言的char *str = "string",這樣是不允許修改字串內容的,只能更改str的指向
如果要建立可以修改的字串,必須使用數組
聲明一個數組 s:= []int{1,2,3}
var arrayOfInt [3] int{1,2,3},定義數組,不過arrayofint不能退化成指標
a:= [2][2]int{ [2]int{1,2},[2]int{3,4}}
slice
s:= [3]int{1,2,3};
sl = s[1:2];
fmt.Printf("%d\n",sl[0])
輸出是2
go中的map要使用make來建立
可以用range來遍曆數組,map,slice
for _;days = range monthdays {
fmt.Printf("%d\n",days);
}
函數:
def func(xs []int)
這個函數是傳入一個splite而不是數組,在使用這個函數的時候:fun(array[:])而不是func(array),會提示無法把array轉化為 []int