1

试图让 aerospike ruby​​ 客户端在 1.8 下工作

ruby 1.8 中这些调用的等价物是什么?

https://github.com/aerospike/aerospike-client-ruby/blob/master/lib/aerospike/utils/buffer.rb#L65

https://github.com/aerospike/aerospike-client-ruby/blob/master/lib/aerospike/utils/buffer.rb#L95

4

2 回答 2

1

与其依赖特定版本的 Ruby 处理字节/字符/字符串的方式,不如使用packandunpack方法。它们始终可用并且行为一致。

为了您的使用,unpack将数据放入一个数组中,然后您可以使用普通的数组切片来更改有问题的字节,然后将pack所有内容都返回到字节流中。

于 2014-12-02T17:14:10.407 回答
1

IIRC,Ruby 1.8 字符串,出于所有意图和目的,1.9 将视为 ASCII-8BIT。因此,String#[]并且String#[]=是按照评论中已经建议的方式进行的方式。(1.9 中的相同函数将针对某个偏移量处的潜在多字节字符,而不是字节。)

有关 Ruby M17N 以及 Ruby 1.9 中字符串如何变化的更完整讨论,请参阅:

于 2014-12-02T14:28:24.953 回答