Мне интересно, каковы конкретные различия в терминологии, которую мы используем для группировки связанных частей кода. Я иногда видел термины, используемые взаимозаменяемо: во многих ОО-языках даже используется ключевое слово «функция» для определения метода. (Почему?)
Если вы хотите быть точным, каковы конкретные значения каждого? Или это просто то, что каждый язык выбирает, чтобы называть это?
Sub
есть Function
без возвращаемого значения. У Python
вас может быть функция, которая не является частью какого-либо класса, поэтому это не метод. Вы также можете объявлять функции внутри функций, и вы можете делать это и в C #. Иногда они имеют разные названия по той же причине, что и яблоки и ананасы: потому что они разные.
function
методы: JavaScript и PHP. Оба используют одно и то же ключевое слово для не-методов (свободных функций), и в случае JavaScript на самом деле нет различия между функциями и методами, по крайней мере, не на уровне языка.