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)

}

  

posted @ 2021-11-12 14:29  专职  阅读(2373)  评论(0编辑  收藏  举报