将从字节编码的十六进制%s设置为变量golang

时间:2019-01-08 02:44:01

标签: go format

请原谅我的语言新颖。我找到了编码为字节的示例,然后使用@app.route('/', methods=['GET', 'POST']) def upload_file(): if request.method == 'POST': f = request.files['file'] mime_type = f.content_type print (mime_type) print (type(f)) try: blob_service.create_blob_from_stream(container, f.filename, f, content_settings=ContentSettings(content_type=mime_type)) except Exception as e: print (str(e)) pass 将其输出,但是如何将示例的字符串表示形式存储在变量中?

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? ,以便稍后在代码中使用,而不是打印出来。


编辑 原始问题被标记为与此重复:Format a Go string without printing?

但是,那里的答案似乎仅涉及使用dst格式化字符串的格式,在这个问题中,我试图找出如何格式化从{{ 1}},但示例使用Sprintfhex中打印出来。但是我想格式化以在变量中使用,该变量可以在以后的代码中重用。所以我不认为这是明显原因的重复,因为它涉及格式化字符串,而不是字节中的十六进制


1 个答案:

答案 0 :(得分:2)

例如,

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