2009-11-06 3 views
0

В последнее время я изучаю разные языковые языки программирования и встречаю много разных имен, чтобы инициализировать конструкцию функции.Def, Void, Function?

Например, рубин и питон использовать ключевое слово четкости и PHP и Javascript использования функцию, в то время как VB использует пустоты и т.д.

Мой вопрос: Что такое рассуждение и различие между этими различными конструкциями и ключевыми словами?

ответ

1

C и все языки, на которых копируются файлы, не используют ключевые слова для объявления функции - всего лишь <returned type> <function name>(<arguments). void - это просто способ сказать «нет типа вообще», то есть то, что мы использовали для вызова «подпрограммы» или «процедуры» («функции», которая не возвращает никакого значения).

function, как используется в Javascript, является четким и сразу очевидным ключевым словом, одинаково применимым как для именных, так и для безымянных функций. ИМХО, лучший из группы.

Я не знаю, что думал Гуидо, когда он выбрал def для названных функций и lambda для неназванных (Нидерланды, где он родился и вырос и где он жил в то время, имеет много прекрасных сортов пива, курс;-). Ruby только что принял def от Python, может быть, просто потому, что он короткий (но он не имеет смысла или толкования ...!).

+0

'def' не имеет смысла? Разве это не краткое определение «определить»? –

+0

Но, «определить» _what_? Почему «определение» означает специально названные функции, а не неназванные, или классы, или dicts, или ...?! И почему «определять», а не «дефолт», «дефер», «дефект», «defenestrate», «disunct» ...? Я люблю Python, а Guido - друг, но 'def' - это просто худшее ключевое слово на этом языке!) –

+0

Как указано,' void' - это тип возвращаемого значения, а не ключевое слово для обозначения функции как 'def'. 'def' кажется мне заимствованным из функциональных языков, где даже функции являются типами первого класса. – dirkgently