日常 Go語言聖經 位元組切片與字串

2022-01-30 19:46:40 字數 845 閱讀 8919

1.乙個字串是乙個不可改變的位元組序列

2.文字字串通常被解釋為採用utf8編碼的unicode碼點(rune)序列

3.內建的len函式可以返回乙個字串中的位元組數目

4.第i個位元組並不一定是字串的第i個字元,因為對於非ascii字元的utf8編碼會要兩個或多個位元組

5.字串操作基於原始字串位元組

6.字串面值方式編寫,只要將一系列位元組序列包含在雙引號內即可,解釋字串,其中的相關的轉義字元將被替換;反引號括起來,支援換行,非解釋字串

7.每個符號都分配乙個唯一的unicode碼點,unicode碼點對應go語言中的rune整數型別

8.utf8是乙個將unicode碼點編碼為位元組序列的變長編碼

9.變長的編碼無法直接通過索引來訪問第n個字元

10.將字串看作是位元組(byte)的切片(slice)來實現對其標準索引法的操作

b:="你好"

fmt.println(len(b))//輸出6,返回的是位元組數目

fmt.println(string(b[0:3]))//輸出 你,子字串操作基於原始字串位元組

//b[0]='a' //字串的不可變性,這裡會報錯

c:="hello"

fmt.println(len(c))//輸出5,acsii碼的是乙個位元組乙個字元

fmt.println(string(c[2]))//輸出 l,可以使用標準索引法獲取

d:=byte("hello")

d[0]=byte('w')

fmt.println(string(d))//輸出 wello,將字串看作是位元組(byte)的切片(slice)來實現對其標準索引法的操作

日常 Go語言聖經 Slice切片習題

1.slice 切片 代表變長的序列,序列中每個元素都有相同的型別,乙個slice型別一般寫作t,其中t代表slice中元素的型別 slice的語法和陣列很像,只是沒有固定長度而已,slice的底層確實引用乙個陣列物件 2.內建的len和cap函式分別返回slice的長度和容量 3.s i j 從第...

日常 Go語言聖經 Map習題

練習 4.8 修改charcount程式,使用unicode.isletter等相關的函式,統計字母 數字等unicode中不同的字元類別。練習 4.9 編寫乙個程式wordfreq程式,報告輸入文字中每個單詞出現的頻率。在第一次呼叫scan前先呼叫input.split bufio.scanwor...

日常 Go語言聖經 匿名函式習題

go語言聖經 匿名函式 1.擁有函式名的函式只能在包級語法塊中被宣告,通過函式字面量 function literal 我們可繞過這一限制,在任何表示式中表示乙個函式值 2.通過這種方式定義的函式可以訪問完整的詞法環境 lexical environment 這意味著在函式中定義的內部函式可以引用該...