ruby将十六进制值赋给string

时间:2013-03-18 13:22:38

标签: ruby

此代码适用于旧版本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的解决方案

1 个答案:

答案 0 :(得分: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"
相关问题