2016-04-15 4 views
1

Я пытаюсь создать строку с помощью:рубин структура струны

puts '["#{follower.screen_name}"]' 

Я хочу выход быть

["DailySanJose"] 

где DailySanJose это значение follower.screen_name. Тем не менее, текущий выход составляет

["#{follower.screen_name}"] 

Любая помощь очень ценится.

+0

Вопрос не ясен. 'puts' не создает (возвращает) строку. Вы хотите создать или вывести строку? – sawa

ответ

4

Интерполяция (#{}) работает только в двойных кавычках.

Попробуйте это:

puts "[\"#{follower.screen_name}\"]" 

Я в том числе двойных кавычек в строке по спасаясь их с \ (обратной косой чертой).

-1

Редактировать

вы можете сделать это таким образом двойные кавычки

puts %{["#{follower.screen_name}"]} 
+1

Это будет работать, но оно не генерирует желаемый результат, который должен содержать двойные кавычки, в соответствии с OP. – Linuxios

+0

@ Linuxios, вы говорите: «Это будет работать, но это не сработает». :-) Strike «будет работать, но это»? –

+0

@CarySwoveland: Хорошая точка ... слишком поздно, чтобы редактировать сейчас: /. – Linuxios

3

Вы можете использовать% Q не придется беспокоиться о том, вылетающих кавычки

, такие как

%Q(["#{follower.screen_name}"]) 

Это позволит избежать котировок для вас au томально и сделать интерполяцию строк, так что вам не придется беспокоиться об этом самостоятельно.

1

Если вы пытаетесь сделать что-то вроде вывода JSON:

require 'json' 

test = "DailySanJose" 

JSON.dump([ test ]) 
# => "[\"DailySanJose\"]" 

Преимущество здесь это счета для строк, как The "Test" который требует двойного цитирования. Не следует путать с \" части, так как при печати, что речь идет именно так, как-это:

puts JSON.dump([ test ]) 
# => ["DailySanJose"] 

Там также несколько других простых способов:

[ test ].inspect 
# => "[\"DailySanJose\"]" 
+0

Это действительно работает. Следует, однако, отметить, что вывод 'inspect' не считается надежным и не должен использоваться ни для чего, кроме отладки. Использование JSON намного лучше. – Linuxios

+0

@Linuxios Как 'проверка' не надежна? Это фундаментально для Ruby, и при использовании простых строк он отлично работает. Я согласен с тем, что JSON - лучший вызов, если это намеченная цель, поскольку результат намного стандартизирован. – tadman

+0

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

0

закруглить варианты вы можете также использовать heredoc:

howdy = "hi" 
puts <<_ 
["#{howdy}"] 
_ 
    # ["hi"] 
0

вы можете использовать путы '[ "' + follower.screen_name +"]'

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