在一台电脑上,我在红宝石1.8.6和其他电脑上得到这个我收到错误
irb(main):001:0> buff = "12345678"
=> "12345678"
irb(main):002:0> buff[4] =0x30
=> 48
irb(main):003:0> buff
=> "12340678"
irb(main):004:0> @new0 = "123456789"
=> "123456789"
irb(main):005:0> @new0[4] = 0x30
=> 48
> @buff ="123456789"
=> "123456789"
> @buff
=> "123456789"
> @buff[4]= 0x30
TypeError: can't convert Fixnum into String
from (irb):3:in `[]='
from (irb):3
> @buff[4] = 0x30
答案 0 :(得分:5)
好像你在第二个例子中使用Ruby 1.9。 []=
方法已更改,只接受字符串。
您可以使用chr
将整数值转换为字符串:
@buff[4] = 0x30.chr
使用以下命令检索字符的字节值:
@buff[4].ord
# => 48