Rubyではなぜ配列が必要なのPacking
ですか?directive
そのようなパッキングを行うのにどのように役立ちますか?
コンソールでコードを実行して、配列パッキングでディレクティブがどのように表示されるかを確認しましたが、出力は各ディレクティブとほぼ同じです。それでは、コアではそれらがどのように異なるのでしょうか?
irb(main):003:0> n = [ 65, 66, 67 ]
=> [65, 66, 67]
irb(main):004:0> n.pack("ccc")
=> "ABC"
irb(main):005:0> n.pack("C")
=> "A"
irb(main):006:0> n.pack("CCC")
=> "ABC"
irb(main):007:0> n.pack("qqq")
=> "A\x00\x00\x00\x00\x00\x00\x00B\x00\x00\x00\x00\x00\x00\x00C\x00\x00\x00\x00\
x00\x00\x00"
irb(main):008:0> n.pack("QQQ")
=> "A\x00\x00\x00\x00\x00\x00\x00B\x00\x00\x00\x00\x00\x00\x00C\x00\x00\x00\x00\
x00\x00\x00"
irb(main):009:0> n.pack("SSS")
=> "A\x00B\x00C\x00"
irb(main):010:0> n.pack("sss")
=> "A\x00B\x00C\x00"
irb(main):011:0>
n.pack("SSS") and n.pack("sss");n.pack("ccc") and n.pack("CCC");
n.pack("qqq") and n.pack("QQQ")
これで、同じ出力を提供するコンソールから確認できます。では、違いはどこにありますか?
また、ドキュメントでは、実際のプログラムで各ディレクティブがどのように機能するかについての例も少し取り上げていません。また、以下のディレクティブをテストする方法がわからないため、それらと混同していますか?それらを含む小さなコードも私に役立ちます:
S_, S!
S> L> Q>
S!< I!<
L_, L!