Практические примеры использования символов в Scala?

У Scala есть символы - имена, которые запускаются с одинарной кавычки 'и которые являются своего рода строковыми константами.

Я знаю символы от Ruby (где они запускают с двоеточия). В Ruby они используются для некоторых задач метапрограммирования, как генерация методов считывания и методов set для членских переменных (например, attr_reader :name генерировать метод считывания для name).

Я еще не видел большое использование символов в коде Scala. Что такое практические применения для символов в Scala?

62
задан 25 August 2009 в 00:08

1 ответ

Как уже отмечено, перенос символов с других (более) функциональных языков. Что-то, что не упомянули другие, - то, что мало того, что они исполняют роль символов, но и они - также самый близкий эквивалент ключевых слов (минус преимущество производительности, возможно). По-моему, они более полезны как ключевые слова, имея в виду явные идентификаторы.

Ниже я буду включать описание суда от документы Clojure из ключевых слов и символов.

Символы

Символы являются идентификаторами, которые обычно используются для обращения к чему-то еще. Они могут использоваться в формах программы, чтобы относиться к параметрам функции, позволить привязке, именам классов и глобальному Вару. У них есть имена и дополнительные пространства имен, оба из которых являются строками. Символы могут иметь метаданные (см. с - meta).

Ключевые слова

Ключевые слова являются символьными идентификаторами, которые оценивают себе. Они обеспечивают очень быстрые тесты равенства. Как Символы, у них есть имена и дополнительные пространства имен, оба из которых являются строками. Продвижение ':' не часть пространства имен или имени.

символы Scala не так мощны как символы на некоторых языках. Поэтому они не так полезны также. Однако я не вижу, почему они не могли предложить то же метапрограммирование и преимущества производительности как ключевые слова. По крайней мере они могут сделать Ваш код легче читать.

1
ответ дан 31 October 2019 в 14:18

Другие вопросы по тегам:

Похожие вопросы: