From: Koji Arai Date: 2001-03-04T00:35:36+09:00 Subject: [ruby-list:28476] Fixnum#[beg, len] (Re: crypt) 新井です。 In message "[ruby-list:28461] Re: crypt" on 03 Mar 2001 18:29:57 +0900, matz@zetabits.com (Yukihiro Matsumoto) wrote: > まつもと ゆきひろです > |ふと、思ったのですがInteger#[start, len] 形式が許されると > | > | salt = tm[0,6].chr + tm[6,6].chr > | salt.tr!("\014-\077\0-\013", "A-Za-z.") > | > |と書けてこの手のビット演算が少し楽になるのですが、ダメですか > |ね? > > ダメってことはないですけど、ビット演算全体を設計してからにし > たいような気もします。ビットの一部を書き換えるようなメソッド > も欲しくなりませんか? うーん、仕様としては Fixnum 限定で、String#[]のように Fixnum#[nth] Fixnum#[beg, len] Fixnum#[beg..end] Fixnum#[nth]= Fixnum#[beg, len]= Fixnum#[beg..end]= ができれば良いかと。(負のbegとか負のlenとかも含めて) # というわけで Subject は Fixnum です。 Bignum も許すと負のbegが指定できなくて実用的ではないと思うので。 pack のビットストリングとString#[]使えばいらないかなとも思っ たけど以外と面倒そう。 -- 新井康司 (Koji Arai)