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