Кажется, я не могу найти четкого объяснения того, как этого добиться. Я думаю, что мои знания о приведении и преобразовании типов в Go невелики.
Допустим, у меня есть следующий фрагмент:
myVector := []float64{0.1, 0.4444, 0.9999, 01}
Для моего конкретного случая использования мне нужно преобразовать его в его представление []byte
, но я не могу понять это.
Любые предложения были бы замечательными. Спасибо.
Если вы хотите закодировать биты с плавающей запятой в [] байт вместо числовых значений, вызовите math.Float64bits, чтобы получить биты с плавающей запятой. Оттуда вам нужно решить, как эти байты кодируются в слайсе (прямой порядок байтов, прямой порядок байтов).
Как правило, вам всегда нужно перебирать 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...)
.
Ах хорошо. В этом есть смысл. Спасибо.
как вы ожидаете, что
[]byte
представление этого будет выглядеть?[]byte{0, 0, 0, 1}
?