2012-02-26 2 views
1

Есть много подобных вопросов к этому, но я думаю, что у меня действительно не было ответа, в котором я нуждался.Ruby: синтаксис для строковой интерполяции и комментирования

Из того, что я воспринимался, все, что имеет # предшествующий ему становится комментарий, как:

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

, но когда он приходит к интерполяции строк, вы можете сказать:

puts "time is #{Time.now}" 

и # в #{Time.now} не начинает комментировать все, что написано после него.

Как это так?

ответ

3

Знак # в этом случае заключен в кавычки и анализируется как часть строки, а не как комментарий.

+0

Есть ли способ, которым я мог бы добавлять комментарии внутри строки, чтобы он не разбирался? –

+0

Я не думаю, что добавление комментариев в строку является «лучшей практикой». Почему вы хотите это сделать? – PhillipKregg

+0

его больше любопытства, я думаю, угадайте, тогда его технически невозможно? –

3

Да, что сказал @Osama. Но также, если вы поместите комментарий внутри куска кода Ruby, он не будет комментировать остальную часть всей строки. Так,

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

Виль печать " 'уф', он сказал", в то время как

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

приводит к " 'Foo', сказал он".

+0

, который очищает некоторые из того, что я имел в виду. ty –

+0

Несомненно, никаких проблем! Рад, что смог помочь. :) – Jwosty

Смежные вопросы