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

  • 相关阅读:
    网页制作--标签,表格,表单,框架
    sql数据库框架
    数据库的触发器
    数据库的复制与附加
    sql数据库随笔
    sql常用函数
    sql数据类型、约束
    sql数据库查询
    数据库增删改查
    数据库基本概念
  • 原文地址:https://www.cnblogs.com/elonlee/p/9363461.html
Copyright © 2011-2022 走看看