установить% s шестнадцатеричного кода, закодированного из байта в переменную golang - PullRequest
0 голосов
/ 08 января 2019

Прошу прощения за мою новизну в языке. Я нашел этот пример кодирования в байтах, а затем он выводит с помощью 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 в переменной для последующего использования в коде вместо ее распечатки.


EDIT Исходный вопрос был помечен как дубликат этого: Форматировать строку Go без печати?

Однако ответы там, по-видимому, относятся только к форматированию строки с использованием Sprintf, и в этом вопросе я пытаюсь выяснить, как отформатировать hex, который был закодирован из byte, но пример распечатывается в fmt.Printf с использованием %s. Но я хотел бы отформатировать для использования в переменной, которая может быть повторно использована в коде в последующих частях. Так что я не думаю, что это дубликат отмеченной причины, так как он касается форматирования строки, а не шестнадцатеричного байта


1 Ответ

0 голосов
/ 08 января 2019

Например,

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...