Time of Update: 2017-01-18
按值傳遞函數參數,是拷貝參數的實際值到函數的形式參數的方法調用。在這種情況下,參數在函數內變化對參數不會有影響。預設情況下,Go程式設計語言使用調用通過值的方法來傳遞參數。在一般情況下,這意味著,在函數內碼不能改變用來調用所述函數的參數。考慮函數swap()的定義如下。複製代碼 代碼如下:/* function definition to swap the values */func swap(int x, int y) int { var temp int &
Time of Update: 2017-01-18
goto語句在Go程式設計語言中的goto語句提供無條件跳轉從跳轉到標記聲明的功能。注意:使用goto語句是高度勸阻的在任何程式設計語言,因為它使得難以跟蹤程式的控制流程程,使程式難以理解,難以修改。使用一個goto任何程式可以改寫,以便它不需要goto。文法轉到goto語句的文法如下:複製代碼 代碼如下:goto label;...label:
Time of Update: 2017-01-18
for迴圈是一個迴圈控制結構,可以有效地編寫需要執行的特定次數的迴圈。文法for迴圈在Go程式設計語言中的文法是:複製代碼 代碼如下:for [condition | ( init; condition; increment ) | Range]{ statement(s);}下面是控制在一個流程的for迴圈:如果condition是可用的,那麼對於迴圈只要條件為真時執行。如果for子句是( init; condition; increment )
Time of Update: 2017-01-18
在Go程式設計語言中的select語句的文法如下:複製代碼 代碼如下:select { case communication clause : statement(s); case communication clause
Time of Update: 2017-01-18
switch語句可以讓一個變數對反對值的列表平等進行測試。每個值被稱為一個的情況(case),變數被接通檢查每個開關盒(switch case)。在Go編程,switch有兩種類型。運算式Switch - 在運算式switch,case包含相比較,switch運算式的值。類型Switch - 在這類型switch,此時含有進行比較特殊註明開關運算式的類型。運算式Switch在Go程式設計語言中表達switch語句的文法如下:複製代碼 代碼如下:switch(boolean-expression
Time of Update: 2017-01-18
if語句if語句包含一個布林運算式後跟一個或多個語句。文法if語句在Go程式設計語言的文法是:複製代碼 代碼如下:if(boolean_expression){ /* statement(s) will execute if the boolean expression is true */} 如果布林運算式的值為 true,那麼if語句裡面代碼塊將被執行。如果if語句的結束(右大括弧後)布林運算式的值為false,那麼語句之後第一行代碼會被執行。流程圖:例子:複製代碼
Time of Update: 2017-01-18
Go令牌Go程式包括各種令牌和令牌可以是一個關鍵字,一個標識符,常量,字串文字或符號。例如,下面的Go語句由六個令牌:複製代碼 代碼如下:fmt.Println("Hello, World!")個體令牌是:複製代碼 代碼如下:fmt.Println("Hello, World!")行分離器在Go程式,行的分隔字元關鍵是一個語句終止。也就是說,每一個單獨語句不需要特殊的分隔線; 在C編譯器轉到內部的地方; 作為語句終止符,表示一個邏輯實體的結束。例如,下面是兩個不同的陳述:複製代碼
Time of Update: 2017-01-18
本地環境設定在這裡我們介紹設定Go程式設計語言環境,需要在你的電腦上的準備以下兩個軟體,(A)文字編輯器和(B)Go編譯器。文字編輯器這將用來鍵入程式。一些編輯器的例子包括Windows記事本,OS編輯命令,簡,Brief, Epsilon, EMACS和VIM或vi。文字編輯器名稱和版本在不同的作業系統可能不太一樣。例如,記事本將用於Windows;VIM或vi可以在Windows以及Linux或UNIX上使用。編輯器建立的檔案稱為源檔案和包含程式原始碼。對於圍棋程式的源檔案通常命名擴充為 "
Time of Update: 2017-01-18
我用的是mac mini然後在上邊裝好了sublime text2 外掛程式依然是go sublime和go build這兩個就不介紹了,因為之前已經介紹了安裝了,go的mac os安裝包可以直接下的,下載地址是http://code.google.com/p/go/downloads/list?q=OpSys-OSX+Type-Installer,根據你自己的電腦來說話,下載對應的就可以了。然後直接安裝,安裝好之後還是配置環境變數,一般的linux上邊都是這樣的 cd ls -a #
Time of Update: 2017-01-18
(f *File).Name()這個函數是返迴文件的名稱,函數原型func (f *File) Name() string要檔案的指標操作,返回字串,感覺比較雞助的方法底層實現複製代碼 代碼如下: func (f *File) Name() string { return f.name } import ( "fmt" "os")func main() { f, _ :=
Time of Update: 2017-01-18
struct和C語言的很相似,類比出class的功能,但是不完全的!沒有建構函式等!struct的申明複製代碼 代碼如下:package mainimport "fmt"type Person struct { Age int Name string}func main() { //初始化兩種 a := Person{} a.Age = 2 a.Name = "widuu" fmt.Println(a)
Time of Update: 2017-01-18
數群組轉換成切片複製代碼 代碼如下: a := [10]int{}fmt.Println(a) s1 := a[:10] //取前10個元素 [5:]取 5-最後的元素 fmt.Println(s1) slice測試複製代碼 代碼如下: a := []byte{'a', 'b', 'c', 'd', 'e', 'f', 'h'}sa := a[2:5]fmt.Println(string(sa))sd1 :=
Time of Update: 2017-01-18
首先來看一下如何聲明數組:複製代碼 代碼如下:package mainimport "fmt"var arr [2]int //申明一個數組func main() { arr[0] = 1 //數組賦值 fmt.Println(arr) arrtest := [3]int{1, 2, 3} //數組的另一種申明方式 fmt.Println(arrtest) a := [...]int{1, 2}
Time of Update: 2017-01-18
判斷檔案是否存在os.IsExists()函數和os.IsNotExists(),他們的函數的原形是func IsExist(err error) bool func IsNotExist(err error) bool 都是傳入一個err返回bool 這裡注意了 err已經定義好了複製代碼 代碼如下: /* var ( ErrInvalid =
Time of Update: 2017-01-18
今天我們講解的是golang標準庫裡邊的io/ioutil包–也就是package io/ioutil1.ioutil.ReadDir(dirname string)這個函數的原型是這樣的 func ReadDir(dirname string) ([]os.FileInfo, error)不難看出輸入的是dirname類型是string類型的 譬如”d:/go”,然會是一個FileInfo的切片,其中FileInfo的結構是這樣的複製代碼 代碼如下: type FileInfo
Time of Update: 2017-01-18
(1)os.Getwd函數原型是func Getwd() (pwd string, err error) 返回的是路徑的字串和一個err資訊,為什麼先開這個呢?因為我看os的包的時候第一個是Chkdir這個包,但是你不知道目前的目錄怎麼知道改變目錄了呢?所以先說Getwd() 函數demo複製代碼 代碼如下:import ( "fmt" "os")func main() { dir, _ := os.Getwd() fmt.Println("當前的目錄是:
Time of Update: 2017-01-18
gojson是快速解析json資料的一個golang包,你使用它可以快速的尋找json內的資料安裝 go get github.com/widuu/gojson使用簡介結構複製代碼 代碼如下:type Js struct { data interface{}}(1) func Json(data) *Js data為string類型,初始化Js結構,解析json並且return Js.data複製代碼 代碼如下:json :=
Time of Update: 2017-01-18
type PipeWriter複製代碼 代碼如下:type PipeWriter struct { // contains filtered or unexported fields}(1)func (w *PipeWriter) Close() error關閉管道,關閉時進行中的Read操作將返回EOF,若管道內仍有未讀取的資料,後續仍可正常讀取複製代碼 代碼如下:import ( "fmt" "io")func main()
Time of Update: 2017-01-18
1.func Copy(dst Writer, src Reader) (written int64, err error)這個函數是從一個檔案讀取拷貝到另外一個檔案,一直拷貝到讀取檔案的EOF,所以不會返回io.EOF錯誤,參數是寫入目標器和讀取目標器,返回int64的拷貝位元組數和err資訊複製代碼 代碼如下:import ( "fmt" "io" "os")func main() { r, _ := os.Open("test.txt")
Time of Update: 2017-01-18
1.func Fields(s string) []string,這個函數的作用是按照1:n個空格來分割字串最後返回的是[]string的切片複製代碼 代碼如下:import ( "fmt" "strings")func main() { fmt.Println(strings.Fields("hello widuu golang")) //out [hello widuu golang]}2.func FieldsFunc(s string, f