1.語言結構
從 helloworld 分析:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
第一行代碼 package main 定義了包名。你必須在源文件中非注釋的第一行指明這個文件屬于哪個包,如:package main。package main表示一個可獨立執行的程序,每個 Go 應用程序都包含一個名為 main 的包。
下一行 import "fmt" 告訴 Go 編譯器這個程序需要使用 fmt 包(的函數,或其他元素),fmt 包實現了格式化 IO(輸入/輸出)的函數。
下一行 func main() 是程序開始執行的函數。main 函數是每一個可執行程序所必須包含的,一般來說都是在啟動后第一個執行的函數(如果有 init() 函數則會先執行該函數)。
下一行 /.../ 是注釋,在程序執行時將被忽略。單行注釋是最常見的注釋形式,你可以在任何地方使用以 // 開頭的單行注釋。多行注釋也叫塊注釋,均已以 /* 開頭,并以 */ 結尾,且不可以嵌套使用,多行注釋一般用于包的文檔描述或注釋成塊的代碼片段。
下一行 fmt.Println(...) 可以將字符串輸出到控制臺,并在最后自動增加換行字符 \n。 使用 fmt.Print("hello, world\n") 可以得到相同的結果。
Print 和 Println 這兩個函數也支持使用變量,如:fmt.Println(arr)。如果沒有特別指定,它們會以默認的打印格式將變量 arr 輸出到控制臺。
當標識符(包括常量、變量、類型、函數名、結構字段等等)以一個大寫字母開頭,如:Group1,那么使用這種形式的標識符的對象就可以被外部包的代碼所使用(客戶端程序需要先導入這個包),這被稱為導出(像面向對象語言中的 public);標識符如果以小寫字母開頭,則對包外是不可見的,但是他們在整個包的內部是可見并且可用的(像面向對象語言中的 protected )。
2.執行 Go 程序的過程
打開編輯器如Sublime,將以上代碼添加到編輯器中。將以上代碼保存為 hello.go,
打開命令行,并進入程序文件保存的目錄中。
輸入命令 go run hello.go 并按回車執行代碼。
這段代碼運行后輸出helloworld
3.基本語法
Go 標記
Go 程序可以由多個標記組成,可以是關鍵字,標識符,常量,字符串,符號。如以下 GO 語句由 6 個標記組成(--區分):
fmt.Println("Hello, World!")
fmt -- . -- Println -- ( -- "Hello, World!" -- )
行分隔符
在 Go 程序中,一行代表一個語句結束。每個語句不需要像 其它語言一樣以分號 ; 結尾,因為這些工作都將由 Go 編譯器自動完成。
注釋
注釋不會被編譯,每一個包應該有相關注釋。
單行注釋是最常見的注釋形式,你可以在任何地方使用以 // 開頭的單行注釋。多行注釋也叫塊注釋,均已以 /* 開頭,并以 */ 結尾。如:
// 單行注釋
/*
Author by w3cschool菜鳥教程
我是多行注釋
*/
標識符
標識符用來命名變量、類型等程序實體。一個標識符實際上就是一個或是多個字母(AZ和az)數字(0~9)、下劃線_組成的序列,但是第一個字符必須是字母或下劃線而不能是數字。
關鍵字
Go 語言的空格
Go 語言中變量的聲明必須使用空格隔開,如:
var age int;
語句中適當使用空格能讓程序看易閱讀。
在變量與運算符間加入空格,程序看起來更加美觀,如:
fruit = apples + oranges;
4數據類型
在 Go 編程語言中,數據類型用于聲明函數和變量。
數據類型的出現是為了把數據分成所需內存大小不同的數據,編程的時候需要用大數據的時候才需要申請大內存,就可以充分利用內存。
Go 語言按類別有以下幾種數據類型:
1 布爾型
布爾型的值只可以是常量 true 或者 false。
一個簡單的例子:
var b bool = true。
2 數字類型
整型 int 和浮點型 float,Go 語言支持整型和浮點型數字,并且原生支持復數,其中位的運算采用補碼。
3 字符串類型:
字符串就是一串固定長度的字符連接起來的字符序列。Go的字符串是由單個字節連接起來的。Go語言的字符串的字節使用UTF-8編碼標識Unicode文本。
4 派生類型:
包括:
(a) 指針類型(Pointer)
(b) 數組類型
(c) 結構化類型(struct)
(d) Channel 類型
(e) 函數類型
(f) 切片類型
(g) 接口類型(interface)
(h) Map 類型