2015-02-15 1 views
-1

Я не могу напечатать входную переменную как часть строки.Не выдает # {variable} в строке

name = gets 
>>> Lizzie 
print #{name} 
>>> Lizzie 

Это работает. Однако, когда я хочу сделать:

name = gets  
print 'Your name is: #{name}' 

выводит:

Your name is: #{name} 

Любая помощь будет оценена.

+4

Используйте '' 'вместо' '', чтобы процитировать вашу строку. –

+2

На самом деле, [Ruby: double vs single quotes] (http://stackoverflow.com/questions/6395288/ruby-double-vs-single-quotes) имеет более четкие ответы. –

+0

@MichaelBerkowski Это не дубликат, потому что автор, скорее всего, не знал, что существует разница между одиночными и двойными кавычками в Ruby. Но в конце да, это направление, на которое он должен быть направлен. –

ответ

1

Не знаю, почему @peter_huene не отправляла это как ответ, но только, чтобы завершить этот вопрос ответ таков:

name = gets  
print "Your name is: #{name}" 

Вы используете двойные кавычки, чтобы получить переменные инъекции и другие функции. Одиночные кавычки - это литеральные цитаты без последующей обработки.

@ Lizzie - Ruby не является «более чувствительным» - он предлагает вам два явных способа обработки строк, которые являются более гибкими. К сожалению, это означает немного «магии» в том, что строки ведут себя по-разному в зависимости от того, как цитируется, но это особенность, а не особенность.