Go語言實現將[]string轉化為[]byte
假設你想實現Go語言的string數組到byte數組的轉化。示範函數如下所示:
func convertStringsToBytes(){ stringContent := []string{"通知中樞","perfect!"} byteContent := "\x00"+ strings.Join(stringContent, "\x02\x00") // x20 = space and x00 = null fmt.Println([]byte(byteContent)) fmt.Println(string([]byte(byteContent)))}
完整代碼:
package main import ( "fmt" "strings" ) func convert(){ stringSlice := []string{"通知中樞","perfect!"} stringByte := "\x00" + strings.Join(stringSlice, "\x20\x00") // x20 = space and x00 = null fmt.Println([]byte(stringByte)) fmt.Println(string([]byte(stringByte))) } func main() { convert() }
運行結果:
[0 233 128 154 231 159 165 228 184 173 229 191 131 2 0 112 101 114 102 101 99 116 33] 通知中樞 perfect!
上面是最簡單的方法,還有另外一種方式可以實現同樣的效果。它主要要使用編碼機制實現。
package main import ( "bytes" "encoding/gob" "fmt" )func convert(){ stringSlice := []string{"通知中樞","perfect!"} buffer := &bytes.Buffer{} gob.NewEncoder(buffer).Encode(stringSlice) byteSlice := buffer.Bytes() fmt.Printf("%q\n", byteSlice) fmt.Println("---------------------------") backToStringSlice := []string{} gob.NewDecoder(buffer).Decode(&backToStringSlice) fmt.Printf("%v\n", backToStringSlice)} func main() { convert() }
Welcome you!