不積跬步,無以至千里;不積小流,無以成江海。
碼字不易,點贊再看。
變量和常量是編程中必不可少的部分。Go 語言是 靜態類型 語言,由於編譯時,編譯器會 檢查 變量的類型,所以要求所有的變量都要有 明確 的類型。
標識符與關鍵字
標識符
在編程語言中標識符就是程序員定義的具有特殊意義的詞,比如變量名、常量名、函數名等等。 Go語言中標識符由字母數字和_(下劃線)組成,並且 只能 以 字母 和 _ 開頭。 舉幾個例子:abc, _, _123, a123。
關鍵字
關鍵字是指編程語言中預先定義好的具有特殊含義的標識符。
關鍵字和保留字都不建議用作變量名。
Go語言中有25個關鍵字:
<code>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
/<code>
此外,Go語言中還有37個保留字。
<code>Constants:true
false
iota
nil
Types:int
int8
int16
int32
int64
uint
uint8
uint16
uint32
uint64
uintptr
float32
float64
complex128
complex64
bool
byte
rune
string
error Functions:make
len
cap
new
append
copy
close
delete
complex
real
imag
panic
recover
/<code>
變量
Go語言中的變量需要先聲明後使用,並且Go語言的變量聲明後 必須 使用。同一 作用域內 不支持 重複聲明。 聲明瞭類型,就約定了變量只能賦該類型的值。
標準聲明
Go語言的變量聲明格式為:
var 變量名 變量類型
變量聲明以關鍵字 var 開頭,變量類型放在變量的後面,行尾 無需 分號。 舉個例子:
<code>var
namestring
var
ageint
var
isOkbool
/<code>
批量聲明
聲明多個變量,除了可以按照上面寫成多行之外,go語言中還支持批量變量聲明:
<code>var
( namestring
ageint
sex ) /<code>
變量的初始化
Go語言在聲明變量的時候,會自動對變量對應的內存區域進行初始化操作。每個變量會被初始化成其類型的默認值比如:
- 字符串變量的默認值為 空字符串
- 整型 和 浮點型 變量的默認值為 0
- 布爾型變量默認為 false
- 切片、函數、指針變量的默認為 nil
我們也可在聲明變量的時候為其指定初始值。變量初始化的標準格式如下:
var 變量名 類型 = 表達式
例如:
<code>var
namestring
="王老師"
var
ageint
=18
/<code>
或者一次初始化多個變量
<code>var
name, age ="王老師"
,18
/<code>
注意:
Go 中雙引號 和 單引號是 不一樣 的,這裡要一定要使用雙引號,表示字符串,而在單引號表示 rune 類型的字符
類型推導
有時候我們會將變量的類型 省略,這個時候編譯器會根據等號右邊的值來 推導 變量的類型完成初始化。
例如:
<code>var
name ="王老師"
var
age =18
/<code>
短變量聲明
在函數 內部 ,可以使用更簡略的 := 方式聲明並初始化變量。
<code>package
mainimport
("fmt"
)var
m =100
func
main
()
{ n :=10
m :=200
fmt.Println(m, n) } /<code>
匿名變量
匿名變量(anonymous variable),也稱作佔位符,或者空白標識符,通常我們用匿名接收必須接收,但是又不會用到的值。 匿名變量用一個 下劃線 _ 表示,例如:
<code>func
foo
()
(
int
,string
) {return
18
,"王老師"
}func
main
()
{ x, _ := foo() _, y := foo() fmt.Println("x="
, x) fmt.Println("y="
, y) } /<code>
匿名變量,優點有三:
- 不分配內存,不佔用內存空間
- 不需要你為命名無用的變量名而糾結
- 多次聲明不會有任何問題
注意:
函數外的每個語句都必須以 關鍵字開始(var、const、func等) := 不能使用在函數外。 _ 多用於佔位,表示忽略值。
常量
相對於變量,常量是恆定不變的值,多用於定義程序運行期間不會改變的那些值。 常量的聲明和變量聲明非常類似,只是把 var 換成了 const,常量在定義的時候必須賦值。
<code>const
pi =3.1415
const
e =2.7182
/<code>
聲明瞭pi和e這兩個常量之後,在整個程序運行期間它們的值都不能再發生變化了。
多個常量也可以一起聲明:
<code>const
(
pi
=3.1415
e
=2.7182
)
/<code>
const同時聲明多個常量時,如果省略了值則表示和上面一行的值 相同。 例如:
<code>const
(
n1
=100
n2
n3
)
/<code>
上面示例中,常量n1、n2、n3的值都是100。
iota
iota 是go語言的常量 計數器,只能 在常量的表達式中使用。
iota 在const關鍵字出現時將被 重置為0。const中每新增一行常量聲明將使iota計數一次(iota可理解為const語句塊中的行索引)。 使用iota能簡化定義,在定義枚舉時很有用。
例如:
<code>const
( n1 =iota
n2 n3 n4 ) /<code>
幾個常見的iota示例:
使用_跳過某些值
<code>const
( n1 =iota
n2 _ n4 ) /<code>
iota 中間插隊
<code>const
( n1 =iota
n2 =100
n3 =iota
n4 )const
n5 =iota
/<code>
多個iota定義在一行
<code>const
( a, b =iota
+1
,iota
+2
c, d e, f ) /<code>
點關注 不迷路
如果你從本篇內容有收穫,求 點贊,求 關注,求 轉發 ,讓更多的人學習到。
如果本文有任何錯誤,請批評指教,不勝感激