将字节数组的 golang 字符串格式转换回原始字节数组

Swi*_*ftD 1 go

所以我从一个消息作为一个字符串开始,把它变成一个字节数组并打印出来,我现在已经丢失了原始字符串但是有字节数组的字符串输出。我要我的绳子回来。(不要问我为什么这样做或如何...我真的没有,这只是为了说明目的)。

本质上,我缺少的一点是将字节数组的打印表示转换回字节数组的便捷方法。

请参阅下面的示例以更好地解释我正在尝试做的事情(完整的“otherWay”功能):

去游乐场

package main

import (
    "fmt"
)

func main() {
    // started with originalString and lost it
    originalString := "I'm a string I am!"

    // I have the output of 'oneWay()' in my clipboard, so could paste into code
    golangStringFormatOfByteArray := oneWay(originalString)
    fmt.Println("String as bytes:", golangStringFormatOfByteArray )

    // get original string back
    returnString := otherWay(golangStringFormatOfByteArray )
    fmt.Println("Original String:", returnString )

}

func oneWay(theString string) string {

    theStringAsBytes := []byte(theString)
    golangStringFormatOfByteArray := fmt.Sprintf("%v", theStringAsBytes)

    return golangStringFormatOfByteArray 
}

func otherWay(stringFormat string) string {

    // how do I get the original string back

    return "I want you back"
}
Run Code Online (Sandbox Code Playgroud)

Ken*_*ant 7

好吧,这是一个有趣的练习,如果有点无意义的话:

s := "WAT"

// Output as bytes
b := []byte(s)
bs := fmt.Sprintf("%v", b)

// Read bytes
var bb []byte
for _, ps := range strings.Split(strings.Trim(bs, "[]"), " ") {
    pi,_ := strconv.Atoi(ps)
    bb = append(bb,byte(pi))
}

// Print result
fmt.Printf("%s -> %s -> %s",s,bs,bb)
Run Code Online (Sandbox Code Playgroud)

https://play.golang.org/p/6cRYVJ7goD

瓦特 -> [87 65 84] -> 瓦特