Ruby等效于python数组

时间:2011-07-18 06:34:00

标签: python ruby-on-rails ruby bytearray

我需要以下python代码的ruby等价物

import array
my_array = array.array('B', [0x00, 0x04, 0xcc, 0x50]).tostring()

UPDATE:我正在尝试使用ruby-serialport gem将4个字节写入串口。

通过将上面的字节数组写入串口,我能够使它在python中工作。现在我想在红宝石中做同样的事情。

3 个答案:

答案 0 :(得分:6)

您在寻找Array#pack吗?

byte_string = [0x00, 0x04, 0xCC, 0x50].pack('C*')

来自fine manual

  

arr.pack ( aTemplateString ) → aBinaryString
  根据 aTemplateString 中的指令将 arr 的内容打包成二进制序列。

C模板用于无符号的8位整数(即单个字节),*只表示“将前面的模板用于数组中的其余元素”。

答案 1 :(得分:1)

您可以将以十六进制给出的字节直接放入字符串中。下面的部分对Python和Ruby都有效。

"\x00\x04\xcc\x50"

答案 2 :(得分:1)

好像你想获得以下字符串:\x00\x04\xccP。您只需撰写"\x00\x04\xcc\x50"

即可