在 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!