Пакет encoding
Обзор
Пакет encoding определяет интерфейсы, общие для других пакетов, которые преобразуют данные в байтовые и текстовые представления и обратно. Эти интерфейсы проверяют пакеты encoding/gob, encoding/json и encoding/xml. Благодаря этому реализация интерфейса один раз может сделать тип пригодным для использования с несколькими форматами кодирования. К стандартным типам, реализующим эти интерфейсы, относятся time.Time и net.IP. Интерфейсы образуют пары: одни создают закодированные данные, другие их потребляют.
Добавление методов кодирования/декодирования к существующим типам может нарушить совместимость, поскольку эти методы могут использоваться для сериализации при обмене данными с программами, написанными с другими версиями библиотеки. Политика пакетов, поддерживаемых проектом Go, допускает добавление функций маршалинга, только если подходящего существующего способа маршалинга нет.
Указатель
Файлы пакета
encoding.go
тип BinaryAppender 1.24
BinaryAppender — это интерфейс, реализуемый объектом, который может добавлять своё двоичное представление. Если тип реализует и BinaryAppender, и BinaryMarshaler, то v.MarshalBinary() должен быть семантически идентичен v.AppendBinary(nil).
type BinaryAppender interface {
// AppendBinary appends the binary representation of itself to the end of b
// (allocating a larger slice if necessary) and returns the updated slice.
//
// Implementations must not retain b, nor mutate any bytes within b[:len(b)].
AppendBinary(b []byte) ([]byte, error)
} тип BinaryMarshaler 1.2
BinaryMarshaler — это интерфейс, реализуемый объектом, который может преобразовать себя в двоичное представление.
MarshalBinary кодирует получателя в двоичное представление и возвращает результат.
type BinaryMarshaler interface {
MarshalBinary() (data []byte, err error)
} тип BinaryUnmarshaler 1.2
BinaryUnmarshaler — это интерфейс, реализуемый объектом, который может восстановить себя из двоичного представления.
UnmarshalBinary должен уметь декодировать представление, созданное MarshalBinary. Если UnmarshalBinary необходимо сохранить данные после возврата, он должен скопировать их.
type BinaryUnmarshaler interface {
UnmarshalBinary(data []byte) error
} тип TextAppender 1.24
TextAppender — это интерфейс, реализуемый объектом, который может добавлять своё текстовое представление. Если тип реализует и TextAppender, и TextMarshaler, то v.MarshalText() должен быть семантически идентичен v.AppendText(nil).
type TextAppender interface {
// AppendText appends the textual representation of itself to the end of b
// (allocating a larger slice if necessary) and returns the updated slice.
//
// Implementations must not retain b, nor mutate any bytes within b[:len(b)].
AppendText(b []byte) ([]byte, error)
} тип TextMarshaler 1.2
TextMarshaler — это интерфейс, реализуемый объектом, который может преобразовать себя в текстовое представление.
MarshalText кодирует получателя в текст в кодировке UTF-8 и возвращает результат.
type TextMarshaler interface {
MarshalText() (text []byte, err error)
} тип TextUnmarshaler 1.2
TextUnmarshaler — это интерфейс, реализуемый объектом, который может восстановить себя из текстового представления.
UnmarshalText должен уметь декодировать представление, созданное MarshalText. Если UnmarshalText необходимо сохранить текст после возврата, он должен скопировать его.
type TextUnmarshaler interface {
UnmarshalText(text []byte) error
} Подкаталоги
| Имя | Краткое описание |
|---|---|
| .. | |
| ascii85 | Пакет ascii85 реализует кодирование данных ascii85, используемое в утилите btoa и форматах документов PostScript и PDF компании Adobe. |
| asn1 | Пакет asn1 реализует разбор структур данных ASN.1, закодированных в DER, согласно рекомендации ITU-T X.690. |
| base32 | Пакет base32 реализует кодирование base32 согласно RFC 4648. |
| base64 | Пакет base64 реализует кодирование base64 согласно RFC 4648. |
| binary | Пакет binary реализует простое преобразование чисел в последовательности байтов и обратно, а также кодирование и декодирование вариационных целых чисел. |
| csv | Пакет csv читает и записывает файлы со значениями, разделёнными запятыми (CSV). |
| gob | Пакет gob управляет потоками gob — двоичными значениями, которыми обмениваются [Encoder] (передатчик) и [Decoder] (получатель). |
| hex | Пакет hex реализует шестнадцатеричное кодирование и декодирование. |
| json | Пакет json реализует кодирование и декодирование JSON согласно RFC 7159. |
| jsontext | Пакет jsontext реализует синтаксическую обработку JSON согласно RFC 4627, RFC 7159, RFC 7493, RFC 8259 и RFC 8785. |
| v2 | Пакет json реализует семантическую обработку JSON согласно RFC 8259. |
| pem | Пакет pem реализует кодирование данных PEM, возникшее в рамках проекта Privacy Enhanced Mail. |
| xml | Пакет xml реализует простой парсер XML 1.0, поддерживающий пространства имён XML. |
© Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
http://golang.org/pkg/encoding/