golangstring转换数组
在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
nodejs字符串转数组}
}
func main(){
str := "这是⼀个字符串ABCDEF"
var arr [10]rune
utility.StringToRuneArr(str, arr[:])
fmt.Println(string(arr[:]))
}
输出结果这是⼀个字符串ABC
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论