请原谅我的语言新颖。我找到了此示例,将其编码为字节,然后使用fmt.Printf
进行了输出,但是如何将本示例的字符串表示形式存储在变量中呢?
src := []byte("Hello Gopher!")
dst := make([]byte, hex.EncodedLen(len(src)))
hex.Encode(dst, src)
fmt.Printf("%s\n", dst) // output: 48656c6c6f20476f7068657221 (how do I get this output rather in a variable?
我想在一个变量中设置
dst
,以便稍后在代码中使用,而不是打印出来。编辑
原始问题被标记为与此重复:Format a Go string without printing?
但是,那里的答案似乎仅涉及使用
Sprintf
格式化字符串的格式,在这个问题中,我试图找出如何格式化从hex
编码的byte
,但是示例使用fmt.Printf
在%s
中打印出来。但是我想格式化以在变量中使用,该变量可以在以后的代码中重用。所以我不认为这是明显原因的重复,因为它涉及格式化字符串,而不是字节中的十六进制 最佳答案
例如,
package main
import (
"encoding/hex"
"fmt"
)
func main() {
str := "Hello Gopher!"
fmt.Println(str)
src := []byte(str)
fmt.Println(src)
dst := hex.EncodeToString(src)
fmt.Println(dst)
}
游乐场:https://play.golang.org/p/qwT_cGpWoYb
输出:
Hello Gopher!
[72 101 108 108 111 32 71 111 112 104 101 114 33]
48656c6c6f20476f7068657221