1、基本數(shù)據(jù)類型
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供花山網(wǎng)站建設(shè)、花山做網(wǎng)站、花山網(wǎng)站設(shè)計(jì)、花山網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、花山企業(yè)網(wǎng)站模板建站服務(wù),十年花山做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
bool
string
int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
byte // alias for int8
rune // alias for int32,represents a Unicode code point
float32 float64
complex64 complex128
常量定義
2、類型轉(zhuǎn)換
(1)Go語(yǔ)言不允許隱式類型轉(zhuǎn)換(不支持小位數(shù)類型向大位數(shù)類型轉(zhuǎn))
(2)別名和原有類型也不能進(jìn)行隱式類型轉(zhuǎn)換(type MyInt int64 = int64)
3、類型的預(yù)定義值
1.math.MaxInt64
2.math.MaxFloat64
3.math.MaxUInt32
4、指針類型
(1)不支持指針運(yùn)算
(2)string是值類型,其默認(rèn)的初始化值為空字符串,而不是nil
5、算術(shù)運(yùn)算符
+ - * / % ++ --(不支持前置++ --)
6、比較運(yùn)算符
#== != = =
(1)比較數(shù)組
相同維數(shù)且含有形同個(gè)數(shù)元素的數(shù)組才可以比較
每個(gè)元素都相同的才相等
7、位運(yùn)算符
| ^
^ (按位置零) a (^b)
1 ^ 0 1
1 ^ 1 0
0 ^ 1 0
0 ^ 0 0
8、條件與循環(huán)
(1)循環(huán)
Go 語(yǔ)?僅?持循環(huán)關(guān)鍵字 for
(2)條件
9、數(shù)組和切片
數(shù)組截取,索引下標(biāo)從0開始計(jì)數(shù)
a[開始索引(包含), 結(jié)束索引(不包含)]
a := [...]int{1, 2, 3, 4, 5}
a[1:2] //2
a[1:3] //2,3
a[1:len(a)] //2,3,4,5
a[1:] //2,3,4,5
a[:3] //1,2,3
切片內(nèi)部結(jié)構(gòu)
9、Map
9、字符串
Unicode UTF8
常?字符串函數(shù)
1、new 的主要特性
首先 new 是內(nèi)建函數(shù),定義也很簡(jiǎn)單:
func new(Type) *Type
內(nèi)建函數(shù) new 用來(lái)分配內(nèi)存,第一個(gè)參數(shù)是一個(gè)類型,不是一個(gè)值,返回值是一個(gè)指向新分配類型零值的指針
實(shí)現(xiàn)一個(gè)類似 new 的功能:
func newInt() *int {
var i int
return i
}
someInt := newInt()
函數(shù)的功能跟 someInt := new(int) 一模一樣。定義 new 開頭的函數(shù)時(shí),出于約定也應(yīng)該返回類型的指針。
2、make 的主要特性
make 也是內(nèi)建函數(shù),定義比 new 多了一個(gè)參數(shù),返回值也不同:
func make(Type, size IntegerType) Type
內(nèi)建函數(shù) make 用來(lái)為 slice,map 或 chan 類型分配內(nèi)存和初始化一個(gè)對(duì)象(注意:只能用在這三種類型上),跟 new 類似,第一個(gè)參數(shù)也是一個(gè)類型而不是一個(gè)值,跟 new 不同的是,make 返回類型的引用而不是指針,而返回值也依賴于具體傳入的類型,具體說(shuō)明如下:
Slice: 第二個(gè)參數(shù) size 指定了長(zhǎng)度,容量和長(zhǎng)度相同。
可以傳入第三個(gè)參數(shù)來(lái)指定不同的容量值,但必須不能比長(zhǎng)度值小。
比如 make([]int, 0, 10)
Map: 根據(jù) size 大小來(lái)初始化分配內(nèi)存,不過(guò)分配后的 map 長(zhǎng)度為 0,如果 size 被忽略了,那么會(huì)在初始化分配內(nèi)存時(shí)分配一個(gè)小尺寸的內(nèi)存
Channel: 管道緩沖區(qū)依據(jù)緩沖區(qū)容量被初始化。如果容量為 0 或者忽略容量,管道沒有緩沖區(qū)。
3、總結(jié)
new 的作用是初始化一個(gè)指向類型的指針(*T),make 的作用是為 slice,map 或 chan 初始化并返回引用(T)。
string是Go語(yǔ)言中的基礎(chǔ)數(shù)據(jù)類型。
聲明string變量非常簡(jiǎn)單,常見的方式有以下兩種:
聲明一個(gè)空字符串后再賦值。
var s string。
s = "hello world"。
需要注意的是空字符只是長(zhǎng)度為0,但不是nil。不存在值為nil的string。
使用簡(jiǎn)短變量聲明:
s := "hello world" //直接初始化字符串。
雙引號(hào)與單引號(hào)。
字符串不僅可以使用雙引號(hào)賦值,也可以使用反單引號(hào)賦值,它們的區(qū)別是在于對(duì)特殊字符的處理。
假如我們希望string變量表示下面的字符串,它包括換行符和雙引號(hào):
Hi。
this is "Steven"。
1。
2。
使用雙引號(hào)表示時(shí),需要對(duì)特殊字符轉(zhuǎn)義,如下所示:
s:= "Hi, \nthis is \"Steven\"."。
1。
如果使用反單引號(hào)時(shí),不需要對(duì)特殊符號(hào)轉(zhuǎn)義,如下所示:
s := Hi。
this is "Steven"。
需要注意的是,字符串拼接會(huì)觸發(fā)內(nèi)存分配以及內(nèi)存拷貝,單行語(yǔ)句拼接多個(gè)字符串只分配一次內(nèi)存。比如上面的語(yǔ)句中,在拼接時(shí),會(huì)先計(jì)算最終字符串的長(zhǎng)度后再分配內(nèi)存。
類型轉(zhuǎn)換:
項(xiàng)目中,數(shù)據(jù)經(jīng)常需要在string和字節(jié)[]byte之間轉(zhuǎn)換。
分享標(biāo)題:go語(yǔ)言數(shù)據(jù)類型初始化 go 初始化
標(biāo)題來(lái)源:http://chinadenli.net/article4/hgocie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、網(wǎng)站營(yíng)銷、微信公眾號(hào)、網(wǎng)站制作、網(wǎng)站收錄、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容