私は経験豊富なプログラマーですが、新しいことはありませんので、私が確信していることを前もってお詫びするのは簡単な質問です。Go Base64パッケージの "StdEncoding"とは何ですか?
goland.org
サイトのbase64 example codeには、次のコードが含まれています。
package main
import (
"encoding/base64"
"fmt"
)
func main() {
msg := "Hello, 世界"
encoded := base64.StdEncoding.EncodeToString([]byte(msg))
fmt.Println(encoded)
decoded, err := base64.StdEncoding.DecodeString(encoded)
if err != nil {
fmt.Println("decode error:", err)
return
}
fmt.Println(string(decoded))
}
私はコピーして、問題なくこのコードを使用しますが、新しい行くプログラマーとして、私は理解していないことができ
次の行のStdEncoding
部分は、私が理解し
decoded, err := base64.StdEncoding.DecodeString(encoded)
何こと上記のプログラムはencode/base64
関数を私のプログラムにインポートします。しかし、私look at the documentationあれば、base64でパッケージには、私はStdEncoding
の種類を見ることが期待される次の種類や機能
func NewDecoder(enc *Encoding, r io.Reader) io.Reader
func NewEncoder(enc *Encoding, w io.Writer) io.WriteCloser
type CorruptInputError
func (e CorruptInputError) Error() string
type Encoding
func NewEncoding(encoder string) *Encoding
func (enc *Encoding) Decode(dst, src []byte) (n int, err error)
func (enc *Encoding) DecodeString(s string) ([]byte, error)
func (enc *Encoding) DecodedLen(n int) int
func (enc *Encoding) Encode(dst, src []byte)
func (enc *Encoding) EncodeToString(src []byte) string
func (enc *Encoding) EncodedLen(n int) int
func (enc Encoding) WithPadding(padding rune) *Encoding
で構成されています - しかし、私はこのリストにStdEncoding
の一切の言及が表示されません。
私の直接の質問は - StdEncoding
とは何ですか?
私のより高いレベルの質問はおそらく、正確には、モジュールのユーザーが消費するためにモジュールからエクスポートされたもので、goユーザーとしてそれらのエクスポートされたものをブラウズできます。
上記のモジュール、エクスポート、インポートのような用語の誤った使用を修正してgo文脈に入れることができれば、ボーナスポイントです。
ありがとうございます - タイプと関数だけがエクスポートされたという(誤った)仮定がありました。私は普通の古い変数も同様であるとは思いませんでした!それは今より多くの意味があります。 –