まつもと ゆきひろです.
In message "[ruby-list:2219] Re: [BUG] pack/unpack [Re: [Req] pack/unpack] "
on 97/02/19, 石塚圭樹 <keiju / shljapan.co.jp> writes:
|けいじゅ@SHLジャパンです.
|ところで, "@"はXとxを合わせて絶対座標になったと思っていいんですよね?
絶対座標というのは正しいです.
|とおもったら, 以下は動作しますね.
|
|s = ["ab", "cd", "ef"].pack("a4a4@0a4")
|print s.inspect, "\n"
|a = s.unpack("a4a4@0a4")
|print a.inspect, "\n"
|---
|"ef\000\000"
|["ef\000\000", "", "ef\000\000"]
ええ.
packは"ab","cd"を出力してから絶対座標0にもどり,"ef"だけを出
力して終わっています.
unpackはa4で"ef"を取り出し,次のa4で文字列の末尾に来たので""
を取り出します.@0で絶対座標0に戻り再びa4で"ef"と取り出して
います.
|ばぐ?
ということで,仕様通りの動作です.