最近慢慢開始接觸go語言,感覺這門21世紀的C語言非常的喜歡,開始嘗試學習的一點筆記,和大家分享下,往各位大佬指點!
基礎命令
Go run hello.go直接列印該檔案語句
Go build 編譯該檔案爲exe可執行檔案。
Go build -o xxxxx.exe編譯爲自定義名字的exek可執行檔案。
在windows系統下面 下麪編譯linux下執行的檔案的命令如下
依次執行,最後go build下。
Go語言基礎宣告變數,程式碼如下
package main
import "fmt"
//定義兩個指定型別返回值的函數
func foo()(string,int) {
return "alex",9000
}
func main(){
var name string
var age int
//宣告變數必須使用
fmt.Println(name)
fmt.Println(age)
//批次宣告
var (
a string //""
b int //0
c bool //false
d string //""
)
//變數賦值,必須和上面初始化時的型別一直
a = "沙河"
b = 100
c = true
d = "100"
fmt.Println(a,b,c,d)
var x string = "五開"
fmt.Println(x)
fmt.Printf("%s初學go語言! %d",x,b) //%s暫位符
//型別推導
//編譯器根據變數初始值的型別,指定給變數
var y =200
fmt.Println(y)
//簡短變數宣告(只能在函數內部使用)
nazha := "嘿嘿嘿額!"
fmt.Println(nazha) //var nazha string = "嘿嘿嘿額!"
//呼叫foo函數
aa,_ := foo() //_表示匿名暫位符,用於接收不需要的變數值
fmt.Println(aa)
}
相對於變數,常數是恆定不變的值,多用於定義程式執行期間不會改變的那些值。 常數的宣告和變數宣告非常類似,只是把var換成了const,常數在定義的時候必須賦值。
const pi = 3.1415
const e = 2.7182
宣告瞭pi和e這兩個常數之後,在整個程式執行期間它們的值都不能再發生變化了。
多個常數也可以一起宣告:
const (
pi = 3.1415
e = 2.7182
)
const同時宣告多個常數時,如果省略了值則表示和上面一行的值相同。 例如:
const (
n1 = 100
n2
n3
)
上面範例中,常數n1、n2、n3的值都是100。
iota
iota是go語言的常數計數器,只能在常數的表達式中使用。
iota在const關鍵字出現時將被重置爲0。const中每新增一行常數宣告將使iota計數一次(iota可理解爲const語句塊中的行索引)。 使用iota能簡化定義,在定義列舉時很有用。
舉個例子:
const (
n1 = iota //0
n2 //1
n3 //2
n4 //3
)
幾個常見的iota範例:
使用_跳過某些值
const (
n1 = iota //0
n2 //1
_
n4 //3
)
iota宣告中間插隊
const (
n1 = iota //0
n2 = 100 //100
n3 = iota //2
n4 //3
)
const n5 = iota //0
定義數量級 (這裏的<<表示左移操作,1<<10表示將1的二進制表示向左移10位,也就是由1變成了10000000000,也就是十進制的1024。同理2<<2表示將2的二進制表示向左移2位,也就是由10變成了1000,也就是十進制的8。)
const (
_ = iota
KB = 1 << (10 * iota)
MB = 1 << (10 * iota)
GB = 1 << (10 * iota)
TB = 1 << (10 * iota)
PB = 1 << (10 * iota)
)
多個iota定義在一行
const (
a, b = iota + 1, iota + 2 //1,2
c, d //2,3
e, f //3,4
)