передать оператор <или> в функцию в качестве параметра? - PullRequest
3 голосов
/ 14 января 2010

Внутри моей функции есть оператор if(), подобный этому:

if(passedValue < staticValue)

Но мне нужно иметь возможность передать параметр, определяющий, является ли выражение if похожим выше или равно:

if(passedValue > staticValue)

Но я не могу действительно передать в оператор < или > параметр, поэтому мне было интересно, как лучше это сделать?

Также, если язык, который я использую, имеет значение для ActionScript 3.0

Спасибо !!

Ответы [ 4 ]

7 голосов
/ 14 января 2010

Вместо передачи оператора, что невозможно в AS3, почему бы не передать пользовательскую функцию сравнения?

function actualFunction(passedValue:Number, compareFunction:Function) {
    /* ... */

    if(compareFunction(passedValue, staticValue)) {
        /* ... Do something ... */
    }

    /* ... */
}

Затем использовать его:

actualFunction(6, function(x:Number, y:Number) {
     return x > y;
});

или

actualFunction(6, function(x:Number, y:Number) {
     return x < y;
});
1 голос
/ 14 января 2010

Почему бы не заставить функцию принять bool в качестве аргумента и выполнить сравнение непосредственно при вызове функции?

ExampleFunction(arg1, (passedValue > staticValue))
0 голосов
/ 14 января 2010

Вы правы, вы не можете пропустить операторов. Вы можете передать переменную, указывающую, какой оператор использовать, хотя.

lessThan = true;
func(passedValue, lessThan); 
0 голосов
/ 14 января 2010

Я не знаю Actionscript, но вы не можете создать переменную с именем:

bool moreThan = true;

и если это правда, делать>, если это ложь делать <? </p>

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