在go中将数据转换为base64编码

时间:2015-06-11 07:36:53

标签: go base64

我是编程语言的新手,我在我的代码上存在这种情况。 这是我的示例代码:

a := genreAPI{Genre{"Pop"}, Genre{"Rock"}}
fmt.Println("Value of a :", a)

当前输出为:Value of a : [{Pop} {Rock}]

如何实现这样的输出: Value of a : [{UG9w} {Um9jaw==}] 这是一个base64编码?

2 个答案:

答案 0 :(得分:3)

我不确定文档中究竟有什么不清楚。它不仅具有明确的name,它解释了该方法正在做什么,它还有一个例子。

package main

import (
    "encoding/base64"
    "fmt"
)

func main() {
    data := []byte("Pop")
    str := base64.StdEncoding.EncodeToString(data)
    fmt.Println(str) // UG9w
}

Go Playground

答案 1 :(得分:0)

您可以通过为您的类型提供String()方法来自定义打印功能的输出。适用于整个Genre或仅适用于名称变量。

示例:

package main

import (
    "encoding/base64"
    "fmt"
)

type Base64String string

func (b Base64String) String() string {
    return base64.StdEncoding.EncodeToString([]byte(b))
}

type Genre struct {
    Name Base64String
}

func main() {
    a := []Genre{Genre{"Pop"}, Genre{"Rock"}}
    fmt.Println(a)                 // prints [{UG9w} {Um9jaw==}]
    fmt.Println(string(a[0].Name)) // prints Pop
}