1. 程式人生 > 其它 >Go語言 之 變數宣告

Go語言 之 變數宣告

宣告變數

能宣告的資料型別:
https://www.runoob.com/go/go-data-types.html
變數可以宣告為全域性變數和區域性變數,在函式外宣告為全域性變數,函式內宣告為區域性變數
宣告變數方式為 var 變數名 資料型別

package main

var age int;

func main(){
	var name string;
	var flag bool
}

最新版本中go可以不用宣告資料型別,通過插入的值作為判斷來宣告變數型別

var age = 1;
var name = "小明"

需要注意的一點是,宣告區域性變數不引用會報錯並且無法編譯,而全域性變數並不會有這個問題

在這裡插入圖片描述
在這裡插入圖片描述
引用後就能正常使用
在這裡插入圖片描述
在這裡插入圖片描述

批量宣告

宣告變數時可以一次性宣告多個變數 需要用var () 包含在內

var (
	age = 1
	flag = true
)

簡短變數宣告

該宣告方法僅限在函式內使用,是根據賦值型別判斷該變數資料型別方法

import "fmt"
func main(){
	name := "xiaoming"
	fmt.println(name)
}

常量

宣告時將 var 換成 const,常量宣告必須賦值,聲明後,該變數值一般不會更改

const n = 1

也可以做批量宣告

const (
	n1 = 100
	n2 = 200
)

常量的批量宣告時,若後面的變數沒有宣告值的話,會自動賦值為上面最近的值

import "fmt"

const (
	n1 = 100
	n2 = 200
	n3
	n4
)

func main() {
	fmt.Println(n1,n2,n3,n4)
}

在這裡插入圖片描述

iota

iota是go語言的常量計數器,只能在常量的表示式使用
iotaconst關鍵字時出現被重置為0。const中每新增一行常量宣告將使iota計數一次,定義列舉時會很有用。

const (
	n1 = iota // 0
	n2 		  // 1
	n3        // 2
	n4        // 3
)

當變數宣告在一行時

const (
	n1,n2 = iota + 1,iota + 2  // n1: 1, n2: 2 iota == 0
	n3,n4 = iota + 1,iota + 2  // n3: 2, n4: 3 iota == 1
)

定義數量級

const (
	_ = iota  // _ 將 0 的值忽略
	KB = 1 << (iota * 10)  // 2的10次方
	MB = 1 << (iota * 10)  // 2的20次方
	GB = 1 << (iota * 10)  // 2的30次方
	TB = 1 << (iota * 10)  // 2的40次方
	PB = 1 << (iota * 10)  // 2的50次方
)

匿名變數

匿名變數通常用_表示,他不會被分配記憶體空間,常用於忽略函式返回值

const (
	n1 = iota // 0
	n2 		  // 1
	_		  // 2
	n3        // 3
	
)