Ruby:字符串插值和注释的语法

时间:2012-02-26 03:35:07

标签: ruby comments string-interpolation

这个问题有很多类似的问题,但我认为没有人真正得到我需要的答案。

根据我的感知,任何前面有#的内容都会成为评论,如:

puts "not a comment"
# puts "in a comment"

但是当它进行字符串插值时,你可以说:

puts "time is #{Time.now}"

#处的#{Time.now}未开始评论其后写的内容。

怎么回事?

2 个答案:

答案 0 :(得分:3)

这种情况下的#符号用引号括起来,并作为字符串的一部分进行解析,而不是注释。

答案 1 :(得分:3)

是的,@ osama说。但是,如果你在Ruby代码块中添加注释,它将不会注释掉整个行的其余部分。所以,

puts "'#{'oof'#.reverse},' he said."

wil print“'oof,'他说,”而

puts "'#{'oof'.reverse},' he said."

导致“'foo,”他说,“。