如何解决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中它输出

1
1

使用IronRuby(32位或64位)从命令行运行,它输出

1
nil

尽管如此,如果我也打印abc==abc2,它会得到true

这显然是IronRuby中的一个bug,但它是一个已经死亡的项目,所以在不久的将来修复它的希望不大。

有没有人知道一个变通办法,这将允许我包装ASCII回字符串,实际上表现为一个人的期望?

我曾经遇到过一个类似的问题,不得不添加一个+''来强制字符串强制转换。

在上面的代码中, 行
b2=b.unpack('C*').pack('C*')

应替换为

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

相关内容

  • 没有找到相关文章

最新更新