Использование специальных символов на имена функций

почему бы не использовать небезопасный код (встраивают c как ее известное) и используют c/c ++ указатели стиля, это безопасно от GC (т.е. не затронутое набором), но идет с его собственными последствиями безопасности (использование наклона для интернет-приложений зоны), но превосходно для вида вещи, кажется, что Вы пытаетесь достигнуть особенно с производительностью и еще больше с массивами и битовыми операциями?

для подведения итогов Вы хотите производительность для небольшой части Вашего приложения? используйте небезопасный код и используйте указатели, и т.д. кажется наилучшим вариантом мне

РЕДАКТИРОВАНИЕ: немного начинающий? http://msdn.microsoft.com/en-us/library/aa288474 (По сравнению с 71) .aspx

23
задан 4 revs, 2 users 94% 21 October 2009 в 20:59
поделиться

4 ответа

Ответ, конечно, зависит от языка (и языковой культуры).

Например, в зависимости от языка подходят все следующие варианты: empty-p, empty?, empty, is_empty или isEmpty. (Эти примеры, конечно, не являются исчерпывающими.)

Примеры в исходном вопросе взяты из Ruby, где такое использование? а также ! to end, где возможно, принимаются имена методов. Это признание происходит из 1) легкодоступности в качестве терминаторов символа в грамматике 2) использования? а также ! в стандартной библиотеке. Однако следует отметить, что! не используется повсеместно для обозначения «побочного эффекта» и обычно присутствует только в альтернативных формах : save / save !, sort / sort !, и т. д. Существует огромное количество методов, которые выполняют побочные эффекты которые не имеют! префикс.

Лично если бы я разрабатывал язык, я бы позволил?,! и 'быть действительными завершающими символами без кавычек в именах символов. Даже несмотря на то, что некоторые языки позволяют полностью экранировать символы, например Scala, таких символов обычно избегают, потому что их сложно цитировать для использования.

// in Scala, esp. with Java-compat, the last form is generally used although
// the first two are perfectly valid -- do what makes sense in the language
foo.`empty?`
foo.empty_?
foo.isEmpty

Когда в Риме ...

  • Scala - пусто? или пусто_? (не часто)
  • C / C ++ / JS / Java / Python / Perl - нет? или ! в идентификаторах; JS / Java позволяют $; $ - это символ в Perl
  • C / C ++ / Perl / JS - поднимается вверх?
  • C # - IsEmpty (метод или свойство) или Empty (свойство)
  • Python - is_empty или isEmpty для Guido- руководство (хотя обычно len протокол: если не len (foo): "empty!" )
  • Java - isEmpty для языкового руководства
  • Ruby - специальный трейлинг? а также ! (цитирование?)
  • JS - косвенный доступ к идентификатору: obj ["пусто?" ] (не часто для этого)
  • Лисп (обычный): empty-p для предиката; вариации в читалке / цитировании
  • Юля - добавляет! функциям, которые изменяют свои аргументы

Рад видеть исправления и / или дополнения - это только капля в море.

18
ответ дан 29 November 2019 в 02:58
поделиться

Я не большой поклонник специальных символов в названиях функций, но тогда я тоже забью насмерть палкой влажного сельдерея, чтобы избавиться от боли, любой, кого я найду, кладет пробелы в именах файлов: -)

Вариант ? так же легко может быть выполнен с помощью чего-то вроде isEmpty () и варианта ! с помощью ] sortInPlace () .

Английский - очень адаптивный язык, даже без знаков препинания.

В любом случае, мои предпочтительные языки (C и Java) используют знаки препинания для всякого другого. Наличие их также в идентификаторах сделало бы лексический анализ кошмаром.

3
ответ дан 29 November 2019 в 02:58
поделиться

Добавление "@" к имени метода (или любому идентификатору) в C # позволяет вам назвать этот метод с помощью обычно зарезервированного ключевого слова.

void null() {}
// Invalid token 'null' in class, struct, or interface member declaration

void @null()
// compiles

Не делайте этого; это в основном для машинного кода, такого как наборы данных. Страница MSDN по теме.

1
ответ дан 29 November 2019 в 02:58
поделиться

Если вы считаете Javascript языком, многие фреймворки, похоже, используют '$ 'символ означает "Селектор"; Например, можно использовать $ ("id-of-some-item") в Prototype.js или $ ("# id-of-some-item") в jQuery. для выбора тега, который был записан

. Использование этих функций выбора на самом деле довольно сложно и мощно (если вам интересно, ознакомьтесь с их вспомогательной документацией на prototypejs.org и jquery.com), но они сводятся к тому, что я считаю семантически похожим на то, что вы указано.

Опять же, это при условии, что вы считаете Javascript языком.

-2
ответ дан 29 November 2019 в 02:58
поделиться
Другие вопросы по тегам:

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