Строки с двойными кавычками более элегантны, потому что вам не нужно разбивать строку каждый раз, когда вам нужно вставить переменную (например, вы должны делать строки с одним кавычком).
Однако, если вам нужно вставить возвращаемое значение функции, это не может быть вставлено в строку с двумя кавычками - даже если вы окружите ее фигурными скобками!
//syntax error!!
//$s = "Hello {trim($world)}!"
//the only option
$s = "Hello " . trim($world) . "!";
% w (foo bar)
- это ярлык для ["foo", "bar"]
. Это означает, что это обозначение для записи массива строк, разделенных пробелами, а не запятыми, и без кавычек вокруг них. Вы можете найти список способов написания литералов в quickref zenspider .
Я думаю о % w ()
как о «массиве слов» - элементы разделены пробелами, и он возвращает массив строк.
Есть и другие % literals:
% r ()
- это еще один способ записи регулярного выражения. % q ()
- еще один способ написать строку в одинарных кавычках (и может быть многострочным, что полезно) % Q ()
дает строку в двойных кавычках % x ()
- это команда оболочки % i ()
дает массив символов ( Ruby> = 2.0.0) % s ()
превращает foo
в символ (: foo
) Я не знаю других, но может там кто-то прячется ...
% W
и % w
позволяют создать массив строки без кавычек и запятых.