學習Golang語言(4):類型--字串

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

跟著“碼術”一起學習Golang語言,偷懶了好多天啦,今天繼續講解Golang中的類型。今天講解的是字串。

學習Golang語言(1): Hello World

學習Golang語言(2): 變數

學習Golang語言(3):類型--布爾型和數實值型別

學習Golang語言(4):類型--字串

學習Golang語言(5):類型--數組

學習Golang語言(6):類型--切片


數實值型別

補充上一章節沒有指出的地方:

Golang還定義了三種依賴系統的類型:int、unint和uintptr。因為在32位系統和64位系統上用來表示這些類型的位元是不同的。


字串

Golang中另一個重要的內建類型是string。

字串就是一串固定長度的字元串連起來的字元序列。Go的字串是由單個位元組串連起來的。也就是說對於傳統的字串是由字元組成的,而Go的字串不同,它是由位元組組成的。

Go語言的字串的位元組使用UTF-8編碼標識Unicode文本。
字串的表示很簡單,用雙引號("")或者反引號(``)來建立。例如:"hello world" 或者 `hello world`。

兩者的區別:

雙引號之間的轉義符會被轉義,而反引號之間的字元保持不變。例如:

輸出:

如果使用單引號(')則表示一個字元(UTF-8編碼)----這種在Go語言中不是string。

字串一旦賦值了,字串就不能修改了:在Go中字串是不可變的。一些操作在Go是非法的。

    var s = "hello world"
    s[0] = 'c' <-----修改第一個字元為'c',這回報錯。

在Go中實現這個需要這麼操作:

1、將s轉換為rune數組;2、修改數組的第一個元數;3、建立新的字串s2;4、列印輸出。


多行字串

由於Go語言會在每行後自動添加分號,因此使用多行字串時候,需要注意:

    s := "Starting part"
    + "Ending part"

會被自動轉換為:

    s := "Starting part";
    + "Ending part";

這個是錯誤 的,應當寫成:

    s := "Starting part"+     "Ending part"

這樣Go就不會在錯誤的地方插入分號,另外一種方式就是使用反引號(``)作為原始字串符號:

    s := `Starting part
     Ending part`

此時s也包含了換行。因為反引號中間的字元會保持不變。


字串轉換

可以使用string(char)將一個字元轉換成一個包含單個字元的字串。


字串處理的包

---------------------------------------------

string包

包括字串的分割,替換,合并等處理;

strconv包

提供許多可以在字串和其他類型的資料之間的轉換函式。

utf-8包

主要用來查詢和操作UTF-8編碼的字串或者字元切片。

unicode包

提供一些用來檢查Unicode碼點是否符合主要標準的函數。

---------------------------------------------

rune

Rune是int32的別名。用UTF-8進行編碼。這個類型什麼時候使用呢?例如需要遍曆字串的字元時候,可以混換每個位元組。為了獲得實際的字元,需要使用rune類型。

輸出結果:

6

2 [20320 22909]

---------------------------------------------

歡迎關注碼術!一起學習Golang語言。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.