2012-08-17 75 views
2

一臺PC上我得到這個關於Ruby 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

? – gmalette 2012-08-17 13:44:09

回答

5

好像你在你的第二個使用Ruby 1.9例。該[]=方法已經改變,並且只接受字符串。

您可以將整數值轉換爲使用chr字符串:

@buff[4] = 0x30.chr 

和檢索一個字符的字節值:你在2號地塊使用Ruby 1.9

@buff[4].ord 
# => 48 
相關問題