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

Функция gob.NewDecoder

Функция gob.NewDecoder создает новый декодер, который читает данные в формате gob из переданного потока ввода. В качестве параметра она принимает интерфейс io.Reader, из которого будут читаться закодированные данные. Возвращает она указатель на структуру Decoder.

Синтаксис

gob.NewDecoder(r io.Reader) *Decoder

Пример

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

package main import ( "bytes" "encoding/gob" "fmt" ) type Person struct { Name string Age int } func main() { var buf bytes.Buffer // Кодируем данные в буфер enc := gob.NewEncoder(&buf) person := Person{Name: "Alice", Age: 30} enc.Encode(person) // Создаем декодер для чтения из буфера dec := gob.NewDecoder(&buf) // Декодируем данные var res Person dec.Decode(&res) fmt.Printf("%+v", res) }

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

{Name:Alice Age:30}

Пример

Давайте прочитаем несколько закодированных значений из одного потока:

package main import ( "bytes" "encoding/gob" "fmt" ) func main() { var buf bytes.Buffer // Кодируем несколько значений enc := gob.NewEncoder(&buf) enc.Encode("first") enc.Encode("second") enc.Encode("third") // Создаем декодер dec := gob.NewDecoder(&buf) // Декодируем каждое значение var res string dec.Decode(&res) fmt.Printf("%q", res) dec.Decode(&res) fmt.Printf("%q", res) dec.Decode(&res) fmt.Printf("%q", res) }

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

"first""second""third"

Пример

Давайте прочитаем данные из файла с помощью декодера:

package main import ( "encoding/gob" "fmt" "os" ) type Data struct { ID int Value string } func main() { // Открываем файл для чтения file, _ := os.Open("data.gob") defer file.Close() // Создаем декодер dec := gob.NewDecoder(file) // Декодируем данные var res Data dec.Decode(&res) fmt.Printf("%+v", res) }

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

{ID:1 Value:example}

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

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