Golang печатает строку как массив байтов - PullRequest
0 голосов
/ 02 мая 2019

Что такое код fmt для печати строки в виде массива байтов?

Если у меня есть маршалированный объект json, я могу напечатать байты следующим образом:

type Fakejs struct {
    Fake string `json:"fake"`
}

fjs := Fakejs {Fake:"abc"}
mjs, err := json.Marshal(fjs)
fmt.Println(mjs)

Производит

[123 34 102 97 107 101 34 58 34 97 98 99 34 125]

Что я и хочу.Тем не менее, с обычной строкой я пытаюсь это:

mystr := "{\"fake\":\"abc\"}"
fmt.Printf("mystr:\t %x \n", []byte(mystr))

И это выдает:

7b2266616b65223a22616263227d

Что не то, что я хочу.Что такое код формата, подобный «% x», который будет печатать строку в виде массива байтов.

1 Ответ

2 голосов
/ 03 мая 2019

https://play.golang.org/p/eQcZm57k1C1

package main

import (
    "fmt"
)

func main() {
    mystr := "{\"fake\":\"abc\"}"
    fmt.Printf("mystr:\t %v \n", []byte(mystr))
}

отпечатки

mystr:   [123 34 102 97 107 101 34 58 34 97 98 99 34 125] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...