golang中字符串-字节切片,字符串-字符切片的互转
package main import ( "fmt" "reflect" ) func B2S(bs []uint8) string { // 将字节切片转换成字符串 ba := make([]byte, 0) // 创建一个字节切片,默认容量0 fmt.Println(ba, reflect.TypeOf(ba)) // 字节切片: [] 每一个元素是:uint8 类型: []uint8 for i, v := range bs { fmt.Println(i, v) ba = append(ba, v) } return string(ba) } func Char2S(cs []int32) string { return string(cs) // 将字符切片直接转换成字符串 } func main() { // 1. 字符串和字节切片的互转 bs := []byte("马亚南") fmt.Println(bs) s1 := B2S(bs) fmt.Println(s1) // 2. 字符切片和字符串的互转 charSlice := make([]int32, 0) a := "马亚南" for i, v := range a { // 注意:range 也是赋值拷贝 fmt.Println(i, v) v = int32(20122) // a不会改变,还是马亚南,因为range是赋值拷贝 charSlice = append(charSlice, v) // 由于charSlice是新构建的字符切片,所以它都是一个值 20122 } fmt.Println(a) s2 := Char2S(charSlice) fmt.Println(s2) }