婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > GO語言基本類型分析

GO語言基本類型分析

熱門標簽:工商信用卡外呼系統教程 智能營銷軟件 客服級電銷機器人 旅游廁所如何電子地圖標注 外呼系統如何接收服務密碼 海外照相館地圖標注入駐 滁州自建外呼系統 經常接到推銷電話機器人的電話 外呼系統多少錢一年

本文實例分析了GO語言基本類型。分享給大家供大家參考。具體如下:

一、整型

go語言有13種整形,其中有2種只是名字不同,實質是一樣的,所以,實質上go語言有11種整形。如下:

(1)int :依賴不同平臺下的實現,可以是int32或int64

(2)int8 :  (-128->127)

(3)int16: (-32768->32767)

(4)int32: (-2 147 483 648->2 147 483 647)

(5)int64 :(-9 223 372 036 854 775 808->9 223 372 036 854 775 807)

(6)unit : 依賴不同平臺下的實現,可以是int32或int64

(7)unit8 (又名byte):  (0->255)

(8)unit16 :   (0->65535)

(9)unit32 (又名rune):    (0->4 294 967 295)

(10)unit64 : (0->18 446 744 073 709 551 615)

(11)unitptr : 恰好容納指針值的類型,對32位平臺是unit32,對64位平臺是unit64

(PS : 值得注意的是,go語言中沒有自動類型轉換,這意味著,除了上篇博文分析的比較運算符之外,其他的操作符基本需要類型轉換,才能進行操作。否則就是編譯錯誤)

二、浮點類型

go語言有2種類型的浮點和兩種類型的復數類型。

(1) float32(-3.402...×1038->3.402...×1038)

(2) float64(-1.797...×10308->+1.797...×10308)

(3) complex64( 實部、虛部都是一個float32 )

(4) complex128  ( 實部、虛部都是一個float64 )

(PS:標準庫math包中,包含了眾多數學函數,其中所有函數均使用float64,

標準庫math/cmplx包含眾多復數相關的數學函數,其中所有函數均使用complex128)

(PPS : 跟數學中一樣,Go語言使用后綴 i 表示復數,例如 5 + 5.1i )

三、字符串

Go語言的字符串是用UTF-8編碼的變寬字符序列,每個字符都用一個或多個字節表示。這與Java不同,Java是采用UTF-16來表示,每個字符都對應2個字節。

(1)創建:一種是用雙引號(")括起來,它表示可解析的字符串,可以進行字符轉義。另一種是用單引號(')括起來,它表示原生的字符串,可以包含除反引號之外的任何字符,當然也可以換行。如下: 

復制代碼 代碼如下:
func test1() {
    str1 := "\"it's me!\""
    str2 := `"it's me,too"`
    fmt.Println(str1)
    fmt.Println(str2)
}

輸出為:

"it's me!"
"it's me,too"
(2)Go語言的字符串支持 “+=”操作,可以通過[n]獲取索引處的原始字節、通過[n:m]、[n:]、[:m]來獲取字節對應的字符串,若字符被截段,顯示亂碼。如:

復制代碼 代碼如下:
func test1() {
    str1 := "Go語言的字符串是用UTF-8編碼的變寬字符序列,每個字符都用一個或多個字節表示。"
    fmt.Println(str1[4:15])
    fmt.Println(str1[5:15])
    fmt.Println(str1[5])
    fmt.Println(str1[:5])
    fmt.Println(len(str1))         //字節數
    fmt.Println(len([]rune(str1))) //字符數
}

輸出為 :

�言的字�
言的字�
232
Go語
109
41

(3)字符串支持常規的比較運算符操作,比較運算符在內存中一個字節一個字節的比較字符串。當然了,這個比較是按照utf-8編碼的順序進行比較的。

(4)上例的最后一個取字符數的操作:len([]rune(str1)),在Go語言中,一個字符串可以可以用一個rune(又名int32)數組來表示,每個rune都表示一個單一的字符。如:

復制代碼 代碼如下:
func test1() {
    str1 := "Go語言的字符串是用UTF-8編碼的變寬字符序列,每個字符都用一個或多個字節表示。"
    for _, char := range []rune(str1) {
        fmt.Println(char)
    }
}

這個操作會將str1的每個字符數字直接打印出來

四、指針

(1)指針的本質,用一個簡單例子說明一下:

復制代碼 代碼如下:
func test2() {
    a := "xyz"
    b := "opq"
    pa := a  //pa為指向a的指針
    pp := pa //pp為指向pa的指針
    fmt.Println(a, b, *pa, **pp)
    a += "zz" //a追加“zz”
    fmt.Println(a, b, *pa, **pp)
    *pa += "bb" //pp指向的值,追加"bb"
    fmt.Println(a, b, *pa, **pp)
    fmt.Println("打印a各種情況:", a, a)
    fmt.Println("打印pa各種情況:", pa, pa, *pa)
    fmt.Println("打印pp各種情況:", pp, pp, *pp, **pp)
}

輸出如下:

xyz opq xyz xyz
xyzzz opq xyzzz xyzzz
xyzzzbb opq xyzzzbb xyzzzbb
打印a各種情況: 0xc0820001d0 xyzzzbb
打印pa各種情況: 0xc082038018 0xc0820001d0 xyzzzbb
打印pp各種情況: 0xc082038020 0xc082038018 0xc0820001d0 xyzzzbb

可見,指針的本質就是一個存放邏輯地址的變量。

(2)有兩種創建變量的語法,同時獲得指向它們的指針:new(Type) 和 Type{}, 如下:

復制代碼 代碼如下:
type point struct {
    x int
    y int
}

func test3() {
    a := point{1, 2}
    b := new(point)
    c := point{}
    d := point{3, 4}
    fmt.Println(a, b, c, d)
}

輸出為:

{1 2} {0 0} {0 0} {3 4}

Go語言打印指向結構體的指針時,會打印解引用后的結構體內容,同時會將作為前綴,表示它是一個指針。

希望本文所述對大家的GO語言程序設計有所幫助。

您可能感興趣的文章:
  • GO語言類型轉換和類型斷言實例分析
  • Go語言基礎知識總結(語法、變量、數值類型、表達式、控制結構等)
  • GO語言基本數據類型總結
  • Go語言的方法接受者類型用值類型還是指針類型?
  • Go語言中的復合類型詳細介紹
  • 為什么Go語言把類型聲明放在后面?
  • Go語言基本的語法和內置數據類型初探
  • Go語言中如何通過方法為類型添加行為

標簽:楚雄 九江 晉城 喀什 深圳 本溪 運城 湘潭

巨人網絡通訊聲明:本文標題《GO語言基本類型分析》,本文關鍵詞  語言,基本,類型,分析,語言,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《GO語言基本類型分析》相關的同類信息!
  • 本頁收集關于GO語言基本類型分析的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 什邡市| 中西区| 民丰县| 衡水市| 景谷| 宁城县| 青海省| 中山市| 广河县| 蓝山县| 灵山县| 祁阳县| 全椒县| 白朗县| 漳浦县| 桓仁| 鄂伦春自治旗| 松桃| 杭锦后旗| 尼玛县| 左云县| 康平县| 鄂伦春自治旗| 旅游| 公主岭市| 上思县| 马边| 清原| 彭阳县| 云林县| 兴安县| 连城县| 阳泉市| 永兴县| 汉沽区| 花垣县| 文水县| 上犹县| 南乐县| 渭南市| 白银市|