日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GoLang学习笔记——data_type

發布時間:2023/12/4 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)`字符串連接`

1 package main 2 3 import ( 4 "fmt" 5 ) 6 7 func main() { 8 var a string = "hello" 9 var b string = "world" 10 11 fmt.Println(len(a)) 12 fmt.Println(a[1]) 13 fmt.Println(a + b) 14 }

輸出如下

5
101
helloworld

這里我們看到a[1]得到的是一個整數,這就證明了上面`"Go的字符串是由字節組成的這句話"`。我們還可以再驗證一下。

1 package main 2 3 import ( 4 "fmt" 5 ) 6 7 func main() { 8 var a string = "" 9 var b string = "" 10 fmt.Println(len(a)) 11 fmt.Println(len(b)) 12 fmt.Println(len(a + b)) 13 fmt.Println(a[0]) 14 fmt.Println(a[1]) 15 fmt.Println(a[2]) 16 }

輸出

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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。