變量
-
標識符是用來表示GO的變量名或者函數(shù)名,以字母或者_開頭吻谋。后面跟字母或者數(shù)字
例子: A123 adb_123 _a238
關(guān)鍵字是GO語言預先設(shè)定好的忠蝗,具有特殊含義的標識符,在設(shè)置變量的時候滨溉,不能使用
變量的語法
var 變量名稱 類型
例一
var a int
var b string
var c bool
var d int = 8
var e string = “hello”
例二
如果不設(shè)置相關(guān)內(nèi)容什湘,就會走每個類型的默認值
var (
a int //0
b string //“”
c bool //false
d int = 8 // 8
e string = “hello” //hello
)
// 初始化的時候定義變量
f := 10 // go編譯器會自動識別變量的類型
go語言中定義的變量必須被用到长赞,否則會報錯(但是也有解決辦法:如果定義的變量d未被用到晦攒,我們可以使用 _ = d 來忽略變量d)
常量
定義:常量使用const修飾闽撤,代表永遠只讀的,不能修改脯颜,一般用來定義一些公用的不變的變量
常量的語法
const 常量名稱 [type]=類型 或者 const 常量名稱 類型
例一
const b string = “hello world”
const b = “hello world”
const Pi = 3.1414926
例二
const(
a = 1
b = 2
c = 3
)
iota 的用法
iota在golang中表示常量計數(shù)器
使用規(guī)則
- 每當const出現(xiàn)時哟旗,都會是iota初始化為0
- const中每新增一行常量聲明將使iota計數(shù)一次
const (
a = iota // a=0 在常量定義中,iota初始化為0
b = iota // const常量新增一行栋操,iota加1
c = 3 // 定義一個常量
d // 不賦值闸餐,和上一個常量相同
e = iota // 每定義一次常量都iota都加1,現(xiàn)在已經(jīng)新增4行矾芙,現(xiàn)在e=4
)
數(shù)據(jù)類型
整數(shù)和浮點數(shù)
a. int8舍沙、int16、int32剔宪、int64
b. uint8拂铡、uint16、uint32葱绒、uint64
c. int 和 uint感帅,和操作系統(tǒng)平臺相關(guān)
d. float32 和 float64浮點類型
e. 所有整數(shù) 初始化為0,所有浮點數(shù)初始化為0.0地淀,布爾類型初始化為false
說明
- go是強類型語言失球,不用類型之間相加和相互賦值是不允許的
- 如果針對兩個類型相加,需要轉(zhuǎn)化成一個相同的類型進行計算
字符串
string 類型帮毁,使用雙引號控制
字符串的底層就是一個byte的數(shù)組实苞,可以和[]byte類型相互轉(zhuǎn)換
例: var a string = "hello word"
引號說明
- 雙引號: 可以包含控制字符,表示一個字符串烈疚,其實質(zhì)是一個byte類型的數(shù)組黔牵,可以使用索引和len訪問
- 反引號: 所有的字符都原樣輸出
- 單引號:單引號里面只能包含一個字符,默認是 rune類型(等同于int32)胞得,輸出的值改會自動改為字符的ASCII值荧止。
字符串的常用操作
a. ?度:len(str)
b. 拼接:+,fmt.Sprintf
c. 分割:strings.Split
d. 包含: strings.Contains
e. 前綴或后綴判斷:strings.HasPrefix, strings.HasSuffix
f. ?串出現(xiàn)的位置: strings.Index(), strings.LastIndex()
**g. **join操作: strings.Join(a[]string, sep string)
字符串中的占位符
%v 相應值得默認格式
%+v 打印結(jié)構(gòu)體時阶剑,會添加字段名稱
%#v 相應值的go語法表示跃巡,展示map使用
%T 相應值的類型輸出
%t 布爾值的輸出:true或者false
%d 表示十進制
%p 表示指針變量的地址