如何连接Ruby中的字节

在编程红宝石第二版(1.8),第124页,有一个例子说

STR2 = “”; str2 << 1 << 2 << 3; 会产生“ 001 002 003”。

我已经在irb上试了一下,得到了这个结果,但只有一次。 当我试图再次这样做,并且再也没有发生过。 任何人都可以告诉我为什么?

顺便说一句,我的环境是在红宝石2.0.0p353(2013-11-22修订版43784)[x86_64-linux]

     ->   irb
 irb(main):001:0> str2 = ""
 => ""
 irb(main):002:0> str2 << 1 << 2 <<3
 => "u0001u0002u0003"
 irb(main):003:0> str1 = ""
 => ""
 irb(main):004:0> str1 <<1
 irb(main):005:0" str1
 irb(main):006:0" str1 << 1
 irb(main):007:0" str1
 irb(main):008:0" str1 << 1 << 2
 irb(main):009:0" str1
 irb(main):010:0" str1 << 1 << 2 << 3
 irb(main):011:0" str1
 irb(main):012:0" 

您应该在<<1之间添加空格。

str1 << 1
       ^

否则,该行被认为是heredoc的开始。


<<运算符和1之后你只需要一个空格。

现在你的代码看起来像heredoc的开始。

链接地址: http://www.djcxy.com/p/95417.html

上一篇: How to concatenate byte in Ruby

下一篇: Calculate time duration into percentages of a whole month