вызов и вызов w.r.t. на любой компьютерный язык - PullRequest
1 голос
/ 28 августа 2009

Есть ли разница между , вызывающим функции и , вызывающим функции?

Ответы [ 4 ]

5 голосов
/ 28 августа 2009

Нет, это просто другое имя для одной и той же вещи.

1 голос
/ 28 августа 2009

Разница между вызовом и вызовом не определена. Для меня (!):

Вызов означает, что я явно вызываю функцию в своем коде

Пример Java

object.method(arg1, arg2);

Пример Erlang

fun(Arg1, Arg2).

Вызов означает, что у меня есть какая-то ссылка на функцию (имя, указатель и т. Д.), И я прошу механизм, чтобы вызвать эту функцию для меня (передавая ссылку, которую я имею)

Jave пример

method m = Class.forName("myClass").getMethod("method", new Class[] {Integer.TYPE, Integer.TYPE});
m.invoke(new Object[] {10, 20});

Пример Erlang

erlang:apply(mymodule, fun, [Arg1, Arg2]).
0 голосов
/ 28 августа 2009

В Java нет функций, есть только методы, которые либо прикреплены к классу (статические методы), либо к экземплярам класса.

В старых языках, не относящихся к ОО, люди использовали термин «вызов». Когда ОО стал всем обманом, были изобретены новые имена, и люди сказали «мы вызываем функцию», но «мы вызываем метод».

0 голосов
/ 28 августа 2009

Я не уверен, что ты действительно хочешь услышать, но ..

В Java вы можете вызывать функцию, используя отражение. Вам нужно сделать что-то вроде этого:

MyClass mc = new MyClass ();

mc.getClass ().getDeclaredMethods () [0].invoke ();

Вы можете прочитать эту статью об отражении .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...