<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                <p align="right">2021年08月31日 13:54:49</p> [TOC] | 類型 | 長度(字節) | 默認值 | 說明 | | --- | --- | --- | --- | | bool | 1 | false | | | byte | 1 | 0 | uint8 | | rune | 4 | 0 | Unicode Code Point, int32 | | int, uint | 4或8 | 0 | 32 或 64 位 | | int8, uint8 | 1 | 0 | \-128 ~ 127, 0 ~ 255,byte是uint8 的別名 | | int16, uint16 | 2 | 0 | \-32768 ~ 32767, 0 ~ 65535 | | int32, uint32 | 4 | 0 | \-21億~ 21億, 0 ~ 42億,rune是int32 的別名 | | int64, uint64 | 8 | 0 | | | float32 | 4 | 0.0 | | | float64 | 8 | 0.0 | | | complex64 | 8 | | | | complex128 | 16 | | | | uintptr | 4或8 | | 以存儲指針的 uint32 或 uint64 整數 | | array | | | 值類型 | | struct | | | 值類型 | | string | | "" | UTF-8 字符串 | | slice | | nil | 引用類型 | | map | | nil | 引用類型 | | channel | | nil | 引用類型 | | interface | | nil | 接口 | | function | | nil | 函數 | > 詳見標準庫math,定義了各數字類型的取值范圍,例如`math.MinInt16` ## 整型 按長度分:`int8`、`int16`、`int32`、`inint64` 對應無符號整型:`uint8`、`uint16`、`uint32`、`uinnt64` ## 浮點型 兩種浮點型:`float32`、`float64` 遵循`IEEE 754`標準:`float32`的最大范圍為`3.4e38`,常量`math.MaxFloat32` `float64`的最大范圍為`1.8e308`,常量`math.MaxFloat64` ## 布爾值 `bool`類型聲明布爾型數據,布爾型只有true和false兩個值 > Go語言不允許將整型轉換為布爾型 > 布爾型也無法參與數值運算,也無法與其他類型進行轉換 ## 字符串 Go語言里的字符串的內部實現使用utf-8編碼,可以直接在Go語言的源碼中添加ASCII碼字符,例如 ``` s1 := "hello" s2 := "你好" ``` ### byte和rune類型 組成每個字符串的元素叫做“字符”,可以通過遍歷或者單個獲取字符串元素獲得字符。 字符用單引號(’)包裹起來,如: ``` var a := '中' var b := 'x' ``` Go語言中的字符有以下兩種 - byte類型: 代表了ASCII碼中的一個字符,實際類型uint8 - runne類型: 代表了一個UTF-8字符,實際類型uint32,例如處理中文、日文或則其他復合字符 ``` // 遍歷字符串 func traversalString() { s := "pprof.cn博客" for i := 0; i < len(s); i++ { //byte fmt.Printf("%v(%c) ", s[i], s[i]) } fmt.Println() for _, r := range s { //rune fmt.Printf("%v(%c) ", r, r) } fmt.Println() } ``` 輸出結果 ``` 112(p) 112(p) 114(r) 111(o) 102(f) 46(.) 99(c) 110(n) 229(?) 141() 154() 229(?) 174(?) 162(¢) 112(p) 112(p) 114(r) 111(o) 102(f) 46(.) 99(c) 110(n) 21338(博) 23458(客) ``` > 解釋:因為UTF8編碼下一個中文漢字由`3~4`個字節組成,所以我們不能簡單的按照字節去遍歷一個包含中文的字符串,否則就會出現上面輸出中第一行的結果。 ### 字符串轉義 | 轉義 | 含義 | | --- | --- | | \\r | 回車符(返回行首) | | \\n | 換行符(直接跳到下一行的同列位置) | | \\t | 制表符 | | \\' | 單引號 | | \\" | 雙引號 | | \\ | 反斜杠 | ### 多行字符串 Go語言中要定義一個多行字符串時,就必須使用`反引號`字符: ``` s1 := `第一行 第二行 第三行 ` fmt.Println(s1) ``` > 反引號間換行將被作為字符串中的換行,但是所有的轉義字符均無效,文本將會原樣輸出。 ### 字符串的常見操作 | 方法 | 介紹 | | --- | --- | | len(str) | 求長度 | | +或fmt.Sprintf | 拼接字符串 | | strings.Split | 分割 | | strings.Contains | 判斷是否包含 | | strings.HasPrefix,strings.HasSuffix | 前綴/后綴判斷 | | strings.Index(),strings.LastIndex() | 子串出現的位置 | | strings.Join(a\[\]string, sep string) | join操作 | ### 修改字符串 要修改字符串,需要先將其轉換成`[]rune或[]byte`,完成后再轉換為`string`。無論哪種轉換,都會重新分配內存,并復制字節數組。 ``` func changeString() { s1 := "hello" // 強制類型轉換 byteS1 := []byte(s1) byteS1[0] = 'H' fmt.Println(string(byteS1)) s2 := "博客" runeS2 := []rune(s2) runeS2[0] = '狗' fmt.Println(string(runeS2)) } ``` > tips: 字符串底層是一個byte數組,所以可以和\[\]byte類型相互轉換。字符串是不能修改的 字符串是由byte字節組成,所以字符串的長度是byte字節的長度。 rune類型用來表示utf8字符,一個rune字符由一個或多個byte組成。 ## 類型轉換 Go語言中只有強制類型轉換,沒有隱式類型轉換。該語法只能在兩個類型之間支持相互轉換的時候使用。 強制類型轉換的基礎語法如下:其中,T表示要轉換的類型。表達式包括變量、復雜算子和函數返回值等. ``` T(表達式) ``` 例如:計算直角三角形的斜邊長時使用math包的Sqrt()函數,該函數接收的是float64類型的參數,而變量a和b都是int類型的,這個時候就需要將a和b強制類型轉換為float64類型。 ``` func sqrtDemo() { var a, b = 3, 4 var c int // math.Sqrt()接收的參數是float64類型,需要強制轉換 c = int(math.Sqrt(float64(a*a + b*b))) fmt.Println(c) } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看