РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1183 of 1593 menu

Метод gob.Encoder.Encode

Метод gob.Encoder.Encode выполняет сериализацию переданного значения в бинарный формат Gob и записывает результат в поток вывода, связанный с кодировщиком. В качестве параметра метод принимает произвольное значение interface{}, которое требуется закодировать. Метод возвращает error, который будет nil при успешном выполнении операции. Если переданное значение содержит типы, не зарегистрированные в системе Gob, метод вернет ошибку.

Синтаксис

err := enc.Encode(data)

Пример

Давайте закодируем простое значение int в формате Gob и выведем полученные байты:

package main import ( "bytes" "encoding/gob" "fmt" ) func main() { var buf bytes.Buffer enc := gob.NewEncoder(&buf) data := 12345 err := enc.Encode(data) if err != nil { fmt.Println("Error:", err) return } fmt.Println(buf.Bytes()) }

Результат выполнения кода:

[35 255 129 3 1 1 3 105 110 116 1 255 130 0 1 4 0 0 0 8 255 130 0 57 48]

Пример

Давайте закодируем структуру в формате Gob. Для успешной сериализации все поля структуры должны быть экспортируемыми (начинаться с заглавной буквы):

package main import ( "bytes" "encoding/gob" "fmt" ) type User struct { ID int Name string Age int } func main() { var buf bytes.Buffer enc := gob.NewEncoder(&buf) user := User{ID: 1, Name: "Alice", Age: 25} err := enc.Encode(user) if err != nil { fmt.Println("Error:", err) return } fmt.Println(buf.Bytes()) }

Результат выполнения кода:

[44 255 131 3 1 1 4 85 115 101 114 1 255 132 0 1 2 1 2 73 68 1 4 0 1 4 78 97 109 101 1 12 0 1 3 65 103 101 1 4 0 0 0 22 255 132 0 1 1 5 65 108 105 99 101 19]

Пример

Давайте закодируем слайс строк в формате Gob:

package main import ( "bytes" "encoding/gob" "fmt" ) func main() { var buf bytes.Buffer enc := gob.NewEncoder(&buf) data := []string{"a", "b", "c", "d", "e"} err := enc.Encode(data) if err != nil { fmt.Println("Error:", err) return } fmt.Println(buf.Bytes()) }

Результат выполнения кода:

[45 255 131 3 1 1 5 115 108 105 99 101 1 255 132 0 1 4 0 1 5 115 116 114 105 110 103 1 12 0 0 0 16 255 132 0 5 1 1 97 1 1 98 1 1 99 1 1 100 1 1 101 0 0]

Смотрите также

  • функцию gob.NewEncoder,
    которая создает новый кодировщик Gob для записи в указанный поток
  • функцию gob.NewDecoder,
    которая создает новый декодер Gob для чтения из указанного потока
  • функцию gob.Decoder.Decode,
    которая выполняет декодирование данных из формата Gob
  • функцию json.Marshal,
    которая выполняет сериализацию данных в формат JSON
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить