初學go語言第一天

2020-08-12 23:15:48

最近慢慢開始接觸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
	)