golang string轉換數組
阿新 • • 發佈:2018-07-25
fun 字符串 搜索 Golan 修改 run code golang 指定
在golang中, 有數組和切片兩種類型. 切片是引用類型,而數組是值類型. 如果想在函數中傳入數組的指針參數, 則必須指定數組的數量, 如
func stringToRuneArr(s string, arr *[5]rune) 如果去掉 arr *[5]rune 中的5, 則指參數變成了切片類型, 數組的指針就傳不進去了, 編譯會報錯, 那麽難道一定要寫死數組的長度嗎? 這樣也太不優雅. 經過一番搜索, 發現其實方法很簡單, 就是把函數的參數改為切片, 然後傳數組的切片進去. 因為切片是引用類型, 實際在函數中的修改是對應的原來的數組, 這樣就達到了修改數組的目的, 只要修改不超出數組的長度,就沒有問題. 代碼例子如下:func StringToRuneArr(s string, arr []rune) { src := []rune(s) for i, v := range src { if i >= len(arr) { break } arr[i] = v } } func main(){ str := "這是一個字符串ABCDEF" var arr [10]rune utility.StringToRuneArr(str, arr[:]) fmt.Println(string(arr[:])) }
輸出結果 這是一個字符串ABC
golang string轉換數組