,我正在将一个 float32 数字数组以字节格式从 Python 脚本写入 Elasticache Redis 集群,然后在 Go 脚本中从 Elasticache 读取字节(作为字符串)。如何在 Go 脚本中将 bytes-as-string 转换回原始 float32 数组?,Python 示例:,这是我在 Go(游乐场)中尝试过的示例,您使用的示例代码是“转换十六进制,表示为字符串”;你有原始字节(我认为基于
aHex:CDCC8C3FCDCC0C4033335340
),因此直接转换更简单(虽然你可以将字节转换为十六进制字符串,然后进行转换,这样做只会增加不必要的工作/复杂性)。,从这个答案中我们得到(游乐场):,更新参考评论:,我对您收到的内容仍然有点困惑,所以让我们尝试一下这两种可能性。,如果redis查询返回原始数据(字节)作为go字符串(即"\xcd\xcc\x8c?\xcd\xcc\x0c@33S@"
),那么你可以将 转换为 []byte
(游乐场),如果 Redis 返回包含 ASCII (/UTF-8) 表示形式的字符串(即 CDCC
= []byte{0x41, 0x44, 0x43, 0x43}
),最简单的方法可能是使用 encoding/hex 对此进行解码(游乐场),请注意,您原来的方法可能有效,但是,正如上面评论中指出的,您需要处理 Endianness 因此以下内容将起作用(playground – 你可以提高效率,我的目的是为了清晰):,但是,这对运行代码的 CPU 做出了假设,这意味着前面的答案更可取。,