2013-03-06 210 views
3

线在红宝石的一部分,你可以发表评论这样一行的末尾:谈到红宝石

puts "This is a line" # Comment for end of line 

或多行这样的:

=begin 
Multi 
lines 
comment 
=end 

为什么我可以”找不到关于语法,只会评论线的一部分,例如任何信息,在C:

if (my_condition()/* || true */) 

是否在Ruby中存在吗?如果不是,为什么?

+2

[它不存在(http://web.njit.edu/all_topics /Prog_Lang_Docs/html/ruby/syntax.html#comment)。我不知道为什么。 – Mischa 2013-03-06 11:49:01

+0

'if(my_condition()/ * || true * /)'是一个不好的习惯。它会产生维护问题,因为很难看到注释的代码。作为一个更年轻的语言,Ruby有很多基于后视的语法选择,并且不允许这样的评论。感恩,因为从长远来看,这是一件幸事。 – 2013-03-06 18:57:40

回答

3

我怎么找不到任何...?

因为没有。如果你想做到这一点,也许你可以这样做:

some_code.tap{%q{some comments blah blah blah}}.some_more_code_to_continue 

,你可以阅读.tap{%q{...}}因为什么/*...*/将会用C意味着虽然它看起来并不那么好。在某些语言中,人们通过使用现有的语法来设计内联评论;例如在TeX中,经常使用\if\false...\fi

+0

真奇怪的用'.tap {%q {...}}作弊':-) – mudasobwa 2013-03-06 12:38:06

0

有你正在寻找没有确切passibility,但你可以很容易地与\n\捏造事实:

# Inserted `\ #` ⇓⇓⇓ and CR ⇓⇓⇓ 
if (my_condition() \ # || true 
) 
+0

继续'''''是不必要的。 Ruby将自动从下一行抓取右括号,并忽略注释的|| TRUE'。 – 2013-03-06 19:01:11

+0

@theTinMan我认为这不是唯一的情况,有人会尝试应用不在括号内的技巧。 – mudasobwa 2013-03-07 03:07:28