環境安裝 Go 語言支持以下系統: Linux FreeBSD Mac OS X(也稱為 Darwin) Window Linux FreeBSD Mac OS X(也稱為 Darwin) Window 安裝包下載地址為:https://golang.org/dl/。 Windows下直接下載對應的 ...
環境安裝
Go 語言支持以下系統:
-
- Linux
- FreeBSD
- Mac OS X(也稱為 Darwin)
- Window
安裝包下載地址為:https://golang.org/dl/。
Windows下直接下載對應的版本安裝就可以了。
Hello World
新建hello.go,輸入以下代碼:
package main import "fmt" func main() { fmt.Println("Hello, World!") }
命令行運行 go run hello.go
註意:package指包名,和所屬文件夾無關,入口程式的package必須是main。import引入包。func 定義函數,入口程式的函數名必須是main。
IDE
LiteIDE是一款開源、跨平臺的輕量級Go語言集成開發環境(IDE)。項目地址:https://github.com/visualfc/liteide
JetBrains開發的JetBrains GoLand,https://www.jetbrains.com/go/download/
go語言結構
Go 語言的基礎組成有以下幾個部分:
-
- 包聲明
- 引入包
- 函數
- 變數
- 語句 & 表達式
- 註釋
接下來讓我們來看下簡單的代碼,該代碼輸出了"Hello World!":
package main import "fmt" func main() { /* 這是我的第一個簡單的程式 */ fmt.Println("Hello, World!") }
1、第一行代碼 package main 定義了包名。你必須在源文件中非註釋的第一行指明這個文件屬於哪個包,如:package main。package main表示一個可獨立執行的程式,每個 Go 應用程式都包含一個名為 main 的包。
2、下一行 import "fmt" 告訴 Go 編譯器這個程式需要使用 fmt 包(的函數,或其他元素),fmt 包實現了格式化 IO(輸入/輸出)的函數。
3、下一行 func main() 是程式開始執行的函數。main 函數是每一個可執行程式所必須包含的,一般來說都是在啟動後第一個執行的函數(如果有 init() 函數則會先執行該函數)。
4、下一行 /*...*/ 是註釋,在程式執行時將被忽略。單行註釋是最常見的註釋形式,你可以在任何地方使用以 // 開頭的單行註釋。多行註釋也叫塊註釋,均已以 /* 開頭,並以 */ 結尾,且不可以嵌套使用,多行註釋一般用於包的文檔描述或註釋成塊的代碼片段。
5、下一行 fmt.Println(...) 可以將字元串輸出到控制台,併在最後自動增加換行字元 \n。
go語言基礎語法
行分隔符
在 Go 程式中,一行代表一個語句結束。分號(;)是可選的,如果打算將多個語句寫在同一行,它們則必須使用 ; 分割,但在實際開發中不要使用這種做法。
註釋
註釋不會被編譯,每一個包應該有相關註釋。go的註釋和c,java一樣,有單行註釋//,和多行註釋 /* ... */
// 單行註釋
/*
我是多行註釋
*/
標識符
標識符用來命名變數、類型等程式實體。一個標識符實際上就是一個或是多個字母(A~Z和a~z)數字(0~9)、下劃線_組成的序列,但是第一個字元必須是字母或下劃線而不能是數字。
以下是有效的標識符:
mahesh kumar abc move_name a_123
myname50 _temp j a23b9 retVal
以下是無效的標識符:
-
- 1ab(以數字開頭)
- case(Go 語言的關鍵字)
- a+b(運算符是不允許的)
下麵列舉了 Go 代碼中會使用到的 25 個關鍵字或保留字:
break | default | func | interface | select |
case | defer | go | map | struct |
chan | else | goto | package | switch |
const | fallthrough | if | range | type |
continue | for | import | return | var |
除了以上介紹的這些關鍵字,Go 語言還有 36 個預定義標識符:
append | bool | byte | cap | close | complex | complex64 | complex128 | uint16 |
copy | false | float32 | float64 | imag | int | int8 | int16 | uint32 |
int32 | int64 | iota | len | make | new | nil | panic | uint64 |
println | real | recover | string | true | uint | uint8 | uintptr |
程式中可能會使用到這些分隔符:括弧 (),中括弧 [] 和大括弧 {}。程式一般由關鍵字、常量、變數、運算符、類型和函數組成。
程式中可能會使用到這些標點符號:點號. 逗號, 分號; 冒號: 三個點號…
Go 語言數據類型
在 Go 編程語言中,數據類型用於聲明函數和變數。
1、布爾型
布爾型的值只可以是常量 true 或者 false。
2、數字類型
整型 int 和浮點型 float,Go 語言支持整型和浮點型數字,並且原生支持複數,其中位的運算採用補碼。
整型分有符號和無符號:
uint8,uint16,uint32,uint64,int8,int16,int32,int64分別表示無符號和有符號的8位,16位,32位,64位整型
浮點型:
float32 32位浮點數,float64位浮點數。complex64 32位實數和虛數,complex128 64位實數和虛數
其他數字類型:
byte 類似 uint8
rune 類似 int32
uint 32 或 64 位
int 與 uint 一樣大小
uintptr 無符號整型,用於存放一個指針
3、字元串類型:
字元串就是一串固定長度的字元連接起來的字元序列。Go的字元串是由單個位元組連接起來的。Go語言的字元串的位元組使用UTF-8編碼標識Unicode文本。
4、派生類型:
包括:
(a) 指針類型(Pointer)
(b) 數組類型
(c) 結構化類型(struct)
(d) Channel 類型
(e) 函數類型
(f) 切片類型
(g) 介面類型(interface)
(h) Map 類型