【问题标题】:How to work around IronRuby packing bug?如何解决 IronRuby 打包错误?
【发布时间】:2013-06-20 18:39:54
【问题描述】:

考虑下面的代码(一个小测试用例归结为一个实际问题):

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 打包回实际上表现如预期的字符串?

【问题讨论】:

    标签: string ironruby


    【解决方案1】:

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

    在上面的代码中,行

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

    应该替换为

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

    它会按预期工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-23
      • 2021-09-02
      • 1970-01-01
      • 2017-03-19
      • 2022-09-22
      • 2021-01-08
      相关资源
      最近更新 更多