1

此代码适用于旧版本 1.8.X

 @buff1 = "12"
 @buff1[0] = 0x0b                                   
 @buff1[1] = 0x0e

我更新了一小部分代码。请再看看。因为在1.8.6我得到"\016\v" 输出并1.9.3显示错误TypeError: can't convert Fixnum into String

请提供 1.9.3 的解决方案

4

1 回答 1

0

它适用于Ruby 1.9.3

p RUBY_VERSION
b = "12"
@buff1 = []
@buff1[0] = 0x0b                                   
@buff1[1] = 0x0e
p @buff1

输出:

"1.9.3"
[11, 14]

可能您尝试过:

p RUBY_VERSION
b = "12" # you missed the statement @buff1 = []
@buff1[0] = 0x0b                                   
@buff1[1] = 0x0e
p @buff1

你得到了以下输出:

"1.9.3"
C:/Documents and Settings/rakshiar/My Documents/userdata/Ruby/Scripts/test.rb:11
9:in `<main>': undefined method `[]=' for nil:NilClass (NoMethodError)

希望这段代码对您有所帮助。

更新

p RUBY_VERSION
@buff1 = "12"
@buff1[0] = 0x0b.to_s  
p @buff1                               
@buff1[1] = 0x0e.to_s
p @buff1

输出:

"1.9.3"
"112"
"1142"
于 2013-03-18T14:07:19.457 回答