ActionScript“?:”条件运算符并返回函数

时间:2013-11-26 14:18:41

标签: actionscript-3 flash actionscript

我有功能:

    public static function validate(value:*):Boolean 
    {
        ...
        if(field_counter < FIELD_LIMIT){
            field_counter++;
        }else{
            return false;
        }

        return true;
    }

我想将它设为一行,但它在“return false”上显示语法错误:

field_counter < FIELD_LIMIT ? field_counter++ : return false;

4 个答案:

答案 0 :(得分:3)

如果field_counter不是负数,您可以忘记 if 并在一条指令中计算所有内容:

public static function validate(value:*):Boolean 
{
    return (field_counter < FIELD_LIMIT && ++field_counter)
}

如果field_counter不低于FIELD_LIMIT,则不会执行指令++ field_counter。

修改

这是一个预览: http://wonderfl.net/c/c7lA

答案 1 :(得分:2)

为什么要让自己和任何其他开发人员在简单易行时变得困难?

if(field_counter >= FIELD_LIMIT) 
    return false;
field_counter++;
return true;

答案 2 :(得分:1)

你可以通过测试一些关于field_counter的东西来尝试解决这个问题(不是最好的方法,但应该有效):

return (field_counter < FIELD_LIMIT ? (field_counter++!=null) :  false);

答案 3 :(得分:0)

您正在尝试将return语句填充到条件语句中。诀窍是,?:运算符返回一个值,所以你可以说x= y>z ? 1 : z-y;return语句不会返回一个表达式的值。你最好保留原来的if语句。