Является ли утверждение «если» рассмотренным методом?
Нет, это не считается методом, каким вы, возможно, уже видели в других ответах. Однако, если у вас был вопрос: «Он ведет себя как метод?», Тогда ответ может бытьда в зависимости от языка. Любой язык, поддерживающий первоклассные функции, может обойтись без встроенной конструкции/оператора вроде if
. Игнорируйте все пушистые вещи, такие как возвращаемые значения и синтаксис, поскольку в основном это просто функция, которая вычисляет логическое значение и , если это true
, тогда он выполняет некоторый блок кода. Также игнорируйте OO и функциональные различия, поскольку следующие примеры могут быть реализованы как метод класса Boolean
на любом языке, который используется, как это делает Smalltalk.
Ruby поддерживает блоки исполняемого кода, которые могут быть сохранены в переменной и переданы методам. Итак, вот пользовательская функция _if_
, реализованная в Ruby. Материал в пределах { .. }
является частью исполняемого кода, который передается функции. Он также известен как блок в Ruby.
def _if_ (condition)
condition && yield
end
# simple statement
_if_ (42 > 0) { print "42 is indeed greater than 0" }
# complicated statement
_if_ (2 + 3 == 5) {
_if_ (3 + 5 == 8) { puts "3 + 5 is 8" }
_if_ (5 + 8 == 13) { puts "5 + 8 is 13" }
}
Мы можем сделать то же самое в C, C++, Objective-C, JavaScript, Python, Lisp и многих других языках. Вот пример JavaScript.
function _if_(condition, code) {
condition && code();
}
_if_(42 > 0, function() { console.log("Yes!"); });
Нет, 'if' является конструкцией логического потока, а не методом. – asawyer
Нет, я бы никогда не подумал об этом. Это инструкция управления, встроенная в язык. Я буду удивлен, если кто-то другой согласится с вами. – duffymo
public int five() {return 5; } // означает ли это, что 5 - метод? – yurib