Golang字符串简要归纳


  C语言没有原生的字符串类型,当需要表示字符串时,通常采用char*或char数组,字符串的末尾以'\0'结尾,编译器从头到尾扫描,遇到'\0'时,就认为字符串结束。

  在Golang当中,字符串是一个不可修改的UTF-8序列,字符串的末尾也有特定的标识符——即当前字符串的字节个数。

  简要对比如下:

  对于同一个字符串‘hello’:

  C语言:'hello\0'

  Golang:'hello5'

  Golang会将已赋值的字符串分配到只读内存段,因此是不可修改的;且相同的字符串会共享一份底层内存。

  那么应该如何修改一个字符串的,方法有以下两种:

  1.强制转换为字节切片 []byte。

  2.整体赋予新值,这样会整体指向另一段内存。