1、標識符和關鍵字程序員
一、標識符編程
在編程語言中標識符就是程序員定義的具備特殊意義的詞,好比變量名、常量名、函數名等等。 Go語言中標識符由字母數字和_
(下劃線)組成,而且只能以字母和_
開頭。 舉幾個例子:abc
, _
, _123
, a123
。app
二、關鍵字編程語言
關鍵字是指編程語言中預先定義好的具備特殊含義的標識符。 關鍵字和保留字都不建議用做變量名函數
go語言中的25個關鍵字ui
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
go語言中有37個保留字spa
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
2、變量指針
一、變量的類型code
變量的功能是存儲數據,不一樣的變量保存的數據類型不同。常見變量的數據類型有:整型、浮點型、布爾型等blog
二、變量的聲明
Go語言中的變量須要聲明後才能使用,同一做用域內不支持重複聲明。 而且Go語言的變量聲明後必須使用。
三、標準聲明
變量的聲明格式:
var 變量名 變量類型
/*
var name string var age int var isOk bool
*/
四、批量聲明
每聲明一個變量就須要寫var
關鍵字會比較繁瑣,go語言中還支持批量變量聲明
var (
a string
b int
c bool
d float32
)
五、變量的初始化
Go語言在聲明變量的時候,會自動對變量對應的內存區域進行初始化操做。每一個變量會被初始化成其類型的默認值 例如:整型和浮點型變量的默認值爲0
。 字符串變量的默認值爲空字符串
。 布爾型變量默認爲false
。 切片、函數、指針變量的默認爲nil。
(1)變量初始化格式:
var 變量名 類型 = 表達式 /* var name string = "kakawith" var age int = 16
var name, age = "kakawith", 16
*/
(2)類型推導:
有時候咱們會將變量的類型省略,這個時候編譯器會根據等號右邊的值來推導變量的類型完成初始化。
var name = "kakawith" var age = 18
(3)短變量聲明:
在函數內部,可使用更簡略的 :=
方式聲明並初始化變量。
package main import ( "fmt" ) // 全局變量m var m = 100 func main() { n := 10 m := 200 // 此處聲明局部變量m fmt.Println(m, n) }
(4)匿名變量:
在使用多重賦值時,若是想要忽略某個值,可使用匿名變量(anonymous variable)
。 匿名變量用一個下劃線_
表示
package main
import "fmt"
func foo()(int,string){
return 10,"kakawith"
}
func main(){
x, _ := foo()
_, y := foo()
fmt.Println("x=", x)
fmt.Println("y=", y)
}
匿名變量不佔用命名空間,不會分配內存,因此匿名變量之間不存在重複聲明。
注意事項:
:=
不能使用在函數外。_
多用於佔位,表示忽略值。
3、常量
一、相對於變量,常量是恆定不變的值,多用於定義程序運行期間不會改變的那些值。 常量的聲明和變量聲明很是相似,只是把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 )
4、iota
0. iota是go語言的常量計數器,只能在常量的表達式中使用。 iota在const關鍵字出現時將被重置爲0。const中每新增一行常量聲明將使iota計數一次(iota可理解爲const語句塊中的行索引)。 使用iota能簡化定義,在定義枚舉時頗有用。
const ( n1 = iota //0 n2 //1 n3 //2 n4 //3 )
1.使用_跳過某些值
const ( n1 = iota //0 n2 //1 _ n4 //3 )
2.聲明中間插隊
iota
const ( n1 = iota //0 n2 = 100 //100 n3 = iota //2 n4 //3 ) const n5 = iota //0
3.定義數量級
const ( _ = iota KB = 1 << (10 * iota) MB = 1 << (10 * iota) GB = 1 << (10 * iota) TB = 1 << (10 * iota) PB = 1 << (10 * iota) )
4.多個iota定義在一行
const ( a, b = iota + 1, iota + 2 //1,2 c, d //2,3 e, f //3,4 )