2014-12-02 11 views
1

Попытки получить клиент aerospike рубина работать под 1,8Эквивалент Строка # setbyte и струнного # GetByte рубин 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

+3

IIRC, это 'String # []' и 'String # [] =' – Stefan

+0

Не ссылаться на внешний код. Когда эти связи сломаются, и они будут, ваш вопрос будет бессмысленным. Вместо этого извлеките только важный раздел со связанной страницы и поместите это в свой вопрос. Кроме того, включение ссылки заставляет потенциальных ответчиков преследовать эту информацию, которая требует дополнительного времени и в некоторых случаях мешает им вообще отвечать. Таким образом, в ваших интересах разместить необходимую им информацию. –

ответ

1

IIRC, Ruby 1.8 строки, для всех намерений и целей, что 1.9 будет рассматривать, как ASCII-8bit. Таким образом, String#[] и String#[]= - это способ, как уже было предложено в комментариях. (Те же функции в 1.9 будет направлена ​​потенциально многобайтовый на определенное смещение, а не байт.)

Для более полного обсуждения на Ruby, m17n и как строки, измененные в Ruby 1.9, см:

1

вместо того, чтобы полагаться на, как конкретная версия Ruby, обрабатывает байт/символов/строк, вместо того, чтобы использовать pack и unpack методы. Они всегда доступны и ведут себя последовательно.

Для вашего использования, unpack данные в массиве, вы можете использовать обычную резку массива для изменения рассматриваемых байтов, затем pack все обратно в байтовый поток.

 Смежные вопросы

  • Нет связанных вопросов^_^