我有功能:
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;
答案 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语句。