Golang string slice

Golang string slice

  1. string底层是一个byte数组, 因此string也可以进行切片处理

    func main() {
    	//str底层是一个byte数组, 所以可以使用切片
    	str:="hello world"
    	slice := str[:5]
    	fmt.Println(slice)// hello
    }
    
  2. string和切片在内存中的形式

  3. string是不可变的, 也就是说不能通过str[0] = 'A'方式来修改字符串

    func main() {
    	str:="hello world"
        //切片源是什么类型, 切片就是什么类型, 如果切片源是数组,那么切片的类型也是数组
    	slice := str[:5]//等价于var slice string = str[:]
    	slice[0] = 'a'//编译出错
    }
    
    
  4. 如果修改字符串可以将字符转为[]byte[]rune切片的形式, 然后转为string

    func main() {
    	str := "hello"
    	bytes := []byte(str) //如果存在中文使用[]rune(), 一个中文占3个字节
    	bytes[0] = 'a'
    	//string是一种基本类型
    	str = string(bytes)
    	fmt.Println(str) //aello
    }
    
posted @ 2020-08-11 16:20  CyberPelican  阅读(552)  评论(0编辑  收藏  举报