Я ищу лучший способ объединить переменные в строку в Ruby.
Например, если строка выглядит примерно так:
« »animal
action
second_animal
И у меня есть переменные animal
, action
и second_animal
, что является предпочтительным способом поместить эти переменные в к строке?
Вы можете использовать форматирование, подобное sprintf, для вставки значений в строку. Для этого строка должна включать заполнители. Поместите свои аргументы в массив и используйте один из следующих способов: (Для получения дополнительной информации см. Документацию по Kernel :: sprintf .)
Вы даже можете явно указать номер аргумента и перемешать их:
Или укажите аргумент с помощью хеш-ключей:
Обратите внимание, что вы должны указать значение для всех аргументов
%
оператора. Например, вы не можете избежать определенияanimal
.источник
Я бы использовал
#{}
конструктор, как указано в других ответах. Я также хочу отметить, что здесь есть настоящая тонкость, на которую следует обратить внимание:Хотя строки могут быть созданы с одинарными кавычками ( о чем свидетельствует
first_name
иlast_name
переменные, конструктор может быть использован только в строках с двойными кавычками.#{}
источник
это еще один способ сделать это.
источник
Это называется строковой интерполяцией, и вы делаете это так:
Важно: это будет работать, только если строка заключена в двойные кавычки ("").
Пример кода, который не будет работать должным образом:
источник
Стандартная система шаблонов ERB может работать для вашего сценария.
источник
Вы можете использовать его со своими локальными переменными, например:
@animal = "Dog"
@action = "licks"
@second_animal = "Bird"
"The #{@animal} #{@action} the #{@second_animal}"
выход будет: «The Dog лижет Птица »
источник