Задать вопрос
  • Что означают литералы обозначений или символы в Ruby?

    @progenth
    Если вы про это
    :something
    то это не изменяемые строки. Они легче и в некоторых местах удобнее.

    Например
    "string"
    "string"
    "string"

    это разные объекты, хотя абсолютно одинаковые, а

    :string
    :string
    :string

    это один и тот же объект.

    Соответственно в памяти 1 объект, а не 3. Если предположить, что мы используем символы как ключи где нибудь в массиве, то выигрыш очевиден.

    А насчет удобства, тут конечно на вкус и цвет.
    Многим
    somefunc :param
    нравится больше чем
    somefunc "param"
    А в рельсах вообще сплошь и рядом...
    Ответ написан
    1 комментарий