← 返回文章列表

golang學習記錄(3)

Go 基礎學習系列第 3 篇,記錄語法、示例與學習過程。

go是一種靜態語言,變數的型別是在編譯階段確定的。

變數必須先定義後使用

變數必須要有型別

變數型別定下來後不能改變

1、變數

1.1、定義變數的方式

// 第一种
var age int (string bool 等)
age = 10
// 第二种
var age = 10
// 第三种
age := 10

1.2、全域性變數和區域性變數

全域性變數:在函式外部定義的變數,作用域為整個包

區域性變數:在函式內部定義的變數,作用域為函式內部

注:全域性變數定義之後可以不使用,但是區域性變數定義之後必須要使用

1.3、多變數定義

// 第一种
var user1, user2, user3 string
// 第二种
var user1, user2, user3 = "user1", 1, true
// 第三种
var (
	user1 string
	user2 int
	user3 bool
)

1.4、注意事項

1、變數必須事先定義 2、公式靜態語言,要求變數型別和賦值型別一致 3、變數名不能衝突 4、簡介變數定義不能作為全域性變數(age := 1) 5、變數有零值,也就是預設值

var age int //age默认为0
var name string //name默认为""
var isOk bool //isOk默认为false

6、全域性變數定義之後可以不使用,但是區域性變數定義之後必須要使用,否則會報錯

2、常量

常量,是在定義的時候就指定的值,不能修改

在go語言中,常量定義的時候儘量全部大寫,便於區分

2.1、定義常量的方式

// 第一种
const PI float32 = 3.1415926 //显示定义
const PI = 3.1415926 //隐式定义
// 之后PI不能改变
PI = 3.1415926 //报错

2.2、多變數定義

變數在成組進行定義是也有多種方式

const(
	PI float32 = 3.1415926
	PI2 = 'a'
	PI3 = 3
)

特別的:

cosnt(
    x int  = 1p
    y
    s = 'a'
    z
    m
)

go

2.3、注意事項

1、常量型別只能是bool、數值和字串 2、常量沒有強制使用的要求,定義之後可以選擇不使用 3、顯示指定型別的時候,必須保證常量左右值型別一致

3、iota

一種能夠被編譯器修改的特殊常量

3.1、iota的使用

//写法1
const (
    ERR0 = iota
    ERR1 = iota
    ERR2 = iota
    ERR3 = iota
    ERR4 = iota
)
// 输出为:0、1、2、3、4
//写法2
const (
    ERR0 = iota
    ERR1
    ERR2
    ERR3
    ERR4
)
// 输出也为0、1、2、3、4

有關iota的計數器特性,如下圖 go

go

iota內部有同一個計數器,自己遞增,不受賦值的影響
出現新的const時,iota會歸零

3.2、注意事項

1、如果中斷了iota必須顯示恢復,後續會自動遞增 2、iota預設型別是int型 3、iota能簡化const型別的定義 4、每次出現新的const之後iota會歸0

4、匿名變數

用下劃線進行標識,不使用不會報錯

如:var _ int = 10

在go語言中,匿名變數是指沒有名字的變數。匿名變數在函式中經常被用作佔位符,用於接收函式返回的多個值中的一部分。 下面是一個應用場景的舉例: go

5、變數的作用域

5.1、全域性變數

在函式外部定義的變數,作用域為整個包。

5.2、區域性變數

在函式內部定義的變數,作用域為函式內部。

有嚴格限制,在使用的時候需要注意。

關於這篇文章的日期

保留舊站原始文章標註的日期;實際開始寫作的時間可能更早。

原始日期: 2024-09-29 22:37:38 +0800

同一系列 · Go 基礎學習

上一篇golang學習記錄(2) ←下一篇golang學習記錄(4) →