亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Go語言基礎數據類型實例代碼分析

發布時間:2023-02-28 17:00:54 來源:億速云 閱讀:87 作者:iii 欄目:開發技術

這篇文章主要講解了“Go語言基礎數據類型實例代碼分析”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Go語言基礎數據類型實例代碼分析”吧!

    布爾型

    布爾型是Go最簡單的數據類型,因為布爾型只有兩個值,即truefalse

    聲明一個布爾數據類型使用關鍵字bool,如:

    var t bool = true
    var f bool = false

    當然,也可以讓Go自動推薦是否為布爾型:

    var t = true
    f := false

    比較運算符和邏輯運算符(如&&||>=等)的運算結果也是布爾型,且其運算結果一般作為iffor語句的判斷條件:

    if 3 > 2{
      fmt.Println("3是大于2嗎?")
    }
    
    for i := 0;i < 10; i++ {
      fmt.Println(i);
    }

    數字類型

    Go的數字數據類型有整型、浮點型和復數三種。

    整型

    整型分為有符號與無符號兩種,有符號的整型可以表示正負整數,無符號則只表示正整數,無論是有符號還是符號都支持1到8個字節幾種不同長度的類型,因此有不同的取值范圍:

    名稱占用字節取值范圍是否有符號
    int81個-128~127
    int162個-32768~32767
    int324個-2147483648~2147483647
    int648個-9223372036854775808~9223372036854775807
    int4個或8個根據操作系統是32位還是64位而變化
    uint81個0~255
    uint162個0~65535
    uint324個0~4294967295
    uint648個0~18446744073709551615
    uint4個或8個根據操作系統是32位還是64位而變化

    一個整數有十六進制、十進制、八進制三種表示方式,十進制為用0~9表示,八進制以0開頭,用0~7表示,十六進制以0x0X開頭,用0~9A~F(或者a~f)表示。

    你可以用不同的進制來表示同一個整數:

    var n1 int = 57 //十進制
    var n2 int = 071 //八進制
    var n3 int = 0x39 //十六進制

    Go語言提供了byte類型用于表示一個字符,byte占用1個字節,實際上byteuint8類型的別名:

    var b byte = 'c'
    fmt.Println(b) //99

    Go語言的源碼文件都是UTF8編碼,每個UTF8編碼的字符占用1到4個字節,Go提供了rune類型用于支持UTF8字符,實際上runeuint32類型的別名:

    var r rune = '中'
    fmt.Println(r)

    浮點型

    Go語言提供了float32float64兩種符合IEEE754浮點數國際標準定義的浮點型數據。

    float32的取值范圍是1.4e-453.4e38,可以提供大約6個十進制數的精度;而float64的取值范圍是4.9e-3241.8e308,可以提供約15個十進制數的精度,通常應該優先使用float64類型。

    浮點型數值有兩種表示方法,一種是直接用小數點的字面量,另一種是科學計算法:

    var f32 float32 = 1.88
    var f64 float64 = 2e3 //2000

    復數

    Go語言有兩種精度的復數類型:complex64complex128,一個復數由實部和虛部組成,在聲明復數類型時,既可以直接用字面量構建,也可以使用函數complex()

    var x complex64 = complex(1,2)
    //相當于
    var x complex64 = 1+2i

    通過函數real可以獲取復數的實部,imag函數可以獲得復數的虛部:

    fmt.Println(real(x))
    fmt.Println(imag(x))

    復數可以用==!=進行比較,只有實部和虛部相等的情況下兩個復數才相等:

    var y = 1+2i
    if x == y {
      fmt.Println("x和y是相等的")
    }

    math/cmplx包提供了復數處理的許多函數,比如計算復數的平方根:

    fmt.Println(cmplx.Sqrt(-1)) // "(0+1i)"

    字符串

    字符串是一個不可以改變字符序列,可以把字符串看作為一個字符數組,只不過這個數組不能單獨修改其中某個元素。

    聲明字符串的關鍵字是string

    var s string = "test"
    s[0] = 'c' //不能通過編譯

    也可以在聲明不使用string關鍵字,而由Go語言推斷是否為字符串:

    s := "test"

    一個字符串值有兩種表示方式,一種是用"..."雙引號表示,一種是用反引號來表示:

    var s1 = "test"
    var s2 = `test`

    用雙引號表示的字符串,可以包含反斜杠``開頭的轉義字符,常見的轉義字符有:

    • \a      響鈴

    • \b      退格

    • \f      換頁

    • \n      換行

    • \r      回車

    • \t      制表符

    • \v      垂直制表符

    • '      單引號(只用在 ''' 形式的rune符號面值中)

    • "      雙引號(只用在 "..." 形式的字符串面值中)

    • \      反斜杠

    使用反引號表示的字符串,轉義字符不會起作用,只會原樣輸出:

    var s1 = "test\n"//會換行
    var s2 = `test\n`//不會換行,\n會原樣輸出

    使用len()函數可以獲取字符串的字節長度:

    fmt.Println(len(s)) //4個字節

    也可以截取字符串來生成新的字符串:

    var s1 = s[0:1]
    var s2 = s[:]

    可以通過索引訪問字符串中的單個字符:

    fmt.Println(s[0])

    無論是通過索引訪問字符串中單個字符,還是通過索引截取字符串,都不能超過字符串的字節長度(字符串字節長度范圍為0 &le; i< len(s)),否則會引發panic異常:

    var s = "this is string"
    fmt.Println(s[0:100])   //panic: slice bounds out of range
    fmt.Println(s[len(s)]) // panic: index out of range

    字符串也可以通過比較運算符(如==或者<)進行比較,Go語言會逐個字節比較字符串:

    s1 := "test1"
    s2 := "test2"
    if s1 < s2 {
      fmt.Println("s1比s2小")
    }

    字符串可以用+號進行拼接:

    var s1 = "hello"
    var s2 = "world"
    var s = s1 + s2

    字符串是一個字符序列,可以看作為一個字符數組,因此字符串可以與字符數組[]byte相互轉換:

    var b = []byte("test")
    var s := string(b)

    標準庫strings包可以用于字符串的查詢、替換、比較、大小寫轉換等操作:

    var s = "test"
    fmt.Println(strings.ToUpper(s))//轉換成大寫

    字符串與數字的相互轉換則使用strconv包:

    var i = 123
    fmt.Println(strconv.Itoa(i))
    
    var s = "123"
    fmt.Println(strconv.Atoi(s))

    另外,bytest和unicode也是處理字符串時會用到的標準庫。

    感謝各位的閱讀,以上就是“Go語言基礎數據類型實例代碼分析”的內容了,經過本文的學習后,相信大家對Go語言基礎數據類型實例代碼分析這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    绥阳县| 桐乡市| 沾益县| 泸州市| 华容县| 金坛市| 九江县| 朝阳市| 乌拉特中旗| 南京市| 禄丰县| 太仓市| 理塘县| 运城市| 云梦县| 洛南县| 齐齐哈尔市| 旺苍县| 宣武区| 河津市| 莲花县| 金溪县| 崇阳县| 京山县| 化州市| 清新县| 富民县| 苍梧县| 浮梁县| 通辽市| 台东市| 屏东县| 邻水| 芜湖市| 德惠市| 清水河县| 通州市| 星座| 广元市| 丰镇市| 武鸣县|