首頁  >  文章  >  後端開發  >  golang byte是什麼

golang byte是什麼

(*-*)浩
(*-*)浩原創
2019-12-13 10:59:5510769瀏覽

字串中的每一個元素叫做“字元”,在遍歷或單一取得字串元素時可以獲得字元。

golang byte是什麼

Go語言的字元有以下兩種:

一種是uint8 類型,或稱為byte 型,代表了ASCII 碼的一個字元。 (建議學習:go

另一種是rune 類型,代表一個UTF-8 字符,當需要處理中文、日文或其他複合字符時,則需要用到rune 類型。 rune 類型等價於 int32 型。

byte 類型是 uint8 的別名,對於只佔用 1 個位元組的傳統 ASCII 編碼的字元來說,完全沒有問題,例如 var ch byte = 'A',字元使用單引號括起來。

在ASCII 碼表中,A 的值是65,使用16 進位表示則為41,所以下面的寫法是等效的:

var ch byte = 65 或 var ch byte = '\x41'      //(\x 总是紧跟着长度为 2 的 16 进制数)

另外一個可能的寫法是\後面緊跟著長度為3 的八進制數,例如\377。

Go語言同樣支援 Unicode(UTF-8),因此字元同樣稱為 Unicode 碼位或 runes,並在記憶體中使用 int 來表示。在文件中,一般使用格式 U hhhh 來表示,其中 h 表示一個 16 進位數。

在書寫 Unicode 字元時,需要在 16 進位數之前加上前綴\u或\U。因為 Unicode 至少佔 2 個位元組,所以我們使用 int16 或 int 型別來表示。如果需要使用到 4 字節,則使用\u前綴,如果需要使用到 8 個字節,則使用\U前綴。

var ch int = '\u0041'
var ch2 int = '\u03B2'
var ch3 int = '\U00101234'
fmt.Printf("%d - %d - %d\n", ch, ch2, ch3) // integer
fmt.Printf("%c - %c - %c\n", ch, ch2, ch3) // character
fmt.Printf("%X - %X - %X\n", ch, ch2, ch3) // UTF-8 bytes
fmt.Printf("%U - %U - %U", ch, ch2, ch3)   // UTF-8 code point

輸出:

65 - 946 - 1053236
A - β - r
41 - 3B2 - 101234
U+0041 - U+03B2 - U+101234

格式化說明符%c用於表示字符,當和字符配合使用時,%v或%d會輸出用於表示該字元的整數,%U輸出格式為U hhhh 的字串。

Unicode 套件中內建了一些用於測試字元的函數,這些函數的傳回值都是一個布林值,如下所示(其中 ch 代表字元):

判断是否为字母:unicode.IsLetter(ch)
判断是否为数字:unicode.IsDigit(ch)
判断是否为空白符号:unicode.IsSpace(ch)

以上是golang byte是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn