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)
}