zoukankan      html  css  js  c++  java
  • golang string转换数组

    在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

  • 相关阅读:
    smb上传图片工具类
    hzero
    ORACLE
    数据库范式
    数据库设计阶段
    Java变量和运算符
    相对路径和绝对路径
    setTimeout()方法和setInterval()方法
    body onload()事件和table insertRow()、tr insertCell()
    eval函数和isNaN函数
  • 原文地址:https://www.cnblogs.com/elonlee/p/9363461.html
Copyright © 2011-2022 走看看