GoLang学习笔记——data_type
Go語言里面,每個變量也都是有類別的,這種類別叫做`數據類型(Data Type)`。
Go的數據類型有兩種:一種是`語言內置的數據類型`,另外一種是`通過語言提供的自定義數據類型方法自己定義的自定義數據類型`。
數值型(Number)
數值型有`三種`,一種是`整數類型`,另外一種是`帶小數的類型`(一般計算機里面叫做`浮點數類型`),還有一種`虛數類型`。
整數類型不用說了,和數學里面的是一樣的。和數學里面不同的地方在于計算機里面`正整數和零`統稱為`無符號整型`,而`負整數`則稱為`有符號整型`。
Go的內置整型有`uint8`, `uint16`, `uint32`, `uint64`, `int8`, `int16`, `int32`和`int64`。其中`u`開頭的類型就是`無符號整型`。無符號類型能夠表示正整數和零。而有符號類型除了能夠表示正整數和零外,還可以表示負整數。
另外還有一些別名類型,比如`byte`類型,這個類型和`uint8`是一樣的,表示`字節類型`。另外一個是`rune類型`,這個類型和`int32`是一樣的,用來表示`unicode的代碼點`,就是unicode字符所對應的整數。
Go還定義了三個`依賴系統`的類型,`uint`,`int`和`uintptr`。因為在32位系統和64位系統上用來表示這些類型的位數是不一樣的。
*對于32位系統*
uint=uint32
int=int32
uintptr為32位的指針
*對于64位系統*
uint=uint64
int=int64
uintptr為64位的指針
至于類型后面跟的數字8,16,32或是64則表示用來表示這個類型的位不同,`位越多,能表示的整數范圍越大`。
比如對于用N位來表示的整數,如果是`有符號的整數`,能夠表示的整數范圍為`-2^(N-1) ~ 2^(N-1)-1`;如果是`無符號的整數`,則能表示的整數范圍為`0 ~ 2^N`。
Go的浮點數類型有兩種,`float32`和`float64`。float32又叫`單精度浮點型`,float64又叫做`雙精度浮點型`。其`最主要的區別就是小數點后面能跟的小數位數不同`。
另外Go還有兩個其他語言所沒有的類型,`虛數類型`。`complex64`和`complex128`。
對于數值類型,其所共有的操作為`加法(+)`,`減法(-)`,`乘法(*)`和`除法(/)`。另外對于`整數類型`,還定義了`求余運算(%)`
求余運算為整型所獨有。如果對浮點數使用求余,比如這樣
1 package main 2 3 import ( 4 "fmt" 5 ) 6 7 func main() { 8 var a float64 = 12 9 var b float64 = 3 10 11 fmt.Println(a % b) 12 }編譯時候會報錯
invalid operation: a % b (operator % not defined on float64)
?
字符串類型(String)
字符串就是一串固定長度的字符連接起來的字符序列。Go的字符串是由`單個字節`連接起來的。(對于漢字,通常由多個字節組成)。這就是說,傳統的字符串是由字符組成的,而`Go的字符串不同`,是`由字節組成`的。這一點需要注意。
字符串的表示很簡單。用(雙引號"")或者(``號)來描述。
"hello world"
或者
`hello world`
唯一的區別是,**雙引號之間的轉義字符會被轉義,而``號之間的轉義字符保持原樣不變**。
1 package main 2 3 import ( 4 "fmt" 5 ) 6 7 func main() { 8 var a = "hello \n world" 9 var b = `hello \n world` 10 11 fmt.Println(a) 12 fmt.Println("----------") 13 fmt.Println(b) 14 }輸出結果為
hello
world
----------
hello \n world
字符串所能進行的一些基本操作包括:
(1)`獲取字符長度`
(2)`獲取字符串中單個字節`
(3)`字符串連接`
輸出如下
5
101
helloworld
這里我們看到a[1]得到的是一個整數,這就證明了上面`"Go的字符串是由字節組成的這句話"`。我們還可以再驗證一下。
輸出
3
3
6
228
189
160
?
布爾型(Bool)
1 布爾型是表示`真值`和`假值`的類型。可選值為`true`和`false`。 2 3 所能進行的操作如下: 4 `&& and 與` 5 `|| or 或` 6 `! not 非` 7 8 Go的布爾型取值`就是true`或`false`。`任何空值(nil)或者零值(0, 0.0, "")都不能作為布爾型來直接判斷`。輸出結果
false
下面是錯誤的用法
1 package main2 3 import (4 "fmt"5 )6 7 func main() {8 if 0 {9 fmt.Println("hello world") 10 } 11 if nil { 12 fmt.Println("hello world") 13 } 14 if "" { 15 fmt.Println("hello world") 16 } 17 }編譯錯誤
./t.go:8: non-bool 0 (type untyped number) used as if condition
./t.go:11: non-bool nil used as if condition
./t.go:14: non-bool "" (type untyped string) used as if condition
上面介紹的是Go語言內置的基礎數據類型。
轉載于:https://www.cnblogs.com/cuibin/p/6713352.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的GoLang学习笔记——data_type的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【F大说】Flash的那些坑
- 下一篇: [cocos2d]修改富文本文本和高度