如何解决IronRuby打包错误?

时间:2013-06-20 18:39:54

标签: string ironruby

考虑以下代码(从一个真正的问题中解决的一个小测试用例):

abc="ABC"
b="B"
print abc.index(b)
print "\n"

abc2=abc.unpack('C*').pack('C*')
b2=b.unpack('C*').pack('C*')
print abc2.index(b2)
print "\n"

在IdeOne中outputs

1
1

从IronRuby(32位或64位)运行它输出的命令行

1
nil

尽管如此,如果我也打印abc==abc2,则会true

这显然是IronRuby中的一个错误,但它是一个死的项目,因此不太希望它会在不久的将来得到修复。

有没有人知道一种解决方法,它允许我将ASCII打包回字符串,这些字符串实际上就像人们期望的那样?

1 个答案:

答案 0 :(得分:1)

我曾遇到类似的问题,不得不添加+''来强制字符串强制。

在上面的代码中,行

b2=b.unpack('C*').pack('C*')

应替换为

b2=b.unpack('C*').pack('C*') + ''

它会按预期工作。