В следующем рубиновом коде вывод будет: "x y"
x = "x %s"
y = "y"
z = "z"
print x % y %z
% z игнорируется.
Я хочу, чтобы вывод был "x y z".
Чтобы понять возможности и ограничения синтаксиса Ruby, я хочу использовать только команду печати и флаги% s и% . Я знаю, как сделать это с помощью sprintf, но я хочу знать, есть ли способ сделать это с помощью команды «print».
Итак, я попытался добавить второй% s к определению переменной 'x':
x = "x %s %s"
y = "y"
z = "z"
print x % y %z
Но я получил эту ошибку:
in `%': too few arguments (ArgumentError)
С помощью sprintf вы можете сделать это:
x = "x %s %s"
y = "y"
z = "z"
print (sprintf(x, y, z))
Вывод будет таким, как я хотел:
x y z
Но это слишком просто.
Есть ли способ сделать это, просто 'print' (не sprintf) и без использования # {} или объединения y и z в массив как [y, z]?