2013-06-20 104 views
1

考慮下面的代碼(一個小的測試情況從一個現實的問題歸結):如何解決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與來自IronRuby的(32位或64位)

1 
1 

潤命令行其輸出

1 
nil 

而且儘管這樣,如果我還打印abc==abc2它給true

這顯然是IronRuby中的一個錯誤,但它是一個死了的項目,所以沒有多少希望它會在不久的將來得到修復。

有誰知道一種解決方法,它可以讓我把ASCII碼打包回字符串中,其實際上可以像預期的那樣工作?

回答

1

我曾經遇到類似的問題,不得不添加一個+''來強制字符串強制。

在上面的代碼中,行

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

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

被替換,並預期它會工作。