Как преобразовать [] float64 в [] байт?

Кажется, я не могу найти четкого объяснения того, как этого добиться. Я думаю, что мои знания о приведении и преобразовании типов в Go невелики.

Допустим, у меня есть следующий фрагмент:

myVector := []float64{0.1, 0.4444, 0.9999, 01}

Для моего конкретного случая использования мне нужно преобразовать его в его представление []byte, но я не могу понять это.

Любые предложения были бы замечательными. Спасибо.

как вы ожидаете, что []byte представление этого будет выглядеть? []byte{0, 0, 0, 1}?

JimB 10.12.2020 23:09

Если вы хотите закодировать биты с плавающей запятой в [] байт вместо числовых значений, вызовите math.Float64bits, чтобы получить биты с плавающей запятой. Оттуда вам нужно решить, как эти байты кодируются в слайсе (прямой порядок байтов, прямой порядок байтов).

Cerise Limón 10.12.2020 23:15
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
API ввода вопросов - это полезный инструмент для интеграции моделей машинного обучения, таких как ChatGPT, в приложения, требующие обработки...
3
2
334
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как правило, вам всегда нужно перебирать slice, чтобы преобразовать его в другой тип slice:

myVector := []float64{0.1, 0.4444, 0.9999, 01}

var newSlice []byte
for _, val := range myVektor {
    newVal := convert(val)
    newSlice = append(newSlice, newVal)
}

Функция преобразования зависит от вас, в зависимости от того, как вы ожидаете, что преобразование float64 в byte будет выглядеть.

Примечание. В случае, если newVal — это не одно значение, а множественное использование newSlice = append(newSlice, newVal...).

Ах хорошо. В этом есть смысл. Спасибо.

darcycp 10.12.2020 23:38

Другие вопросы по теме

Похожие вопросы

Преобразование сериализованных сообщений protobuf в JSON без предварительной компиляции кода Go
Добавление базовой аутентификации на обратный прокси-сервер на основе Go
Как мне проверить подпись ED25519 длиной 128 символов?
Изменить или создать в зависимости от логического значения
Как проверить, если одно время.Сейчас после другого времени.Время
Как разобрать пароль как массив байтов с помощью волокна
Как запустить приложение «отдельно» в отдельном процессе. Запущенный процесс должен работать в своем собственном сеансе и действовать как демон
Как (предварительно) присоединиться к таблице в пользовательском столбце?
Регулярное выражение для игнорирования нескольких префиксов и сопоставления только в том случае, если у них нет одного или двух конкретных жестко запрограммированных атрибутов?
Следите за всеми изменениями в статусе модуля