2013-03-06 95 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