加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

golang string转换数组

发布时间:2020-12-16 09:34:40 所属栏目:大数据 来源:网络整理
导读:在golang中,有数组和切片两种类型. 切片是引用类型,而数组是值类型.? 如果想在函数中传入数组的指针参数,则必须指定数组的数量,如 func stringToRuneArr(s string,arr *[5]rune)? ?? 如果去掉 arr *[5]rune 中的5,则指参数变成了切片类型,数组的指针就传不进

在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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读