我正在将AS3代码翻译成Dart。我已经部分翻译了以下内容,但我仍然坚持如何处理AS3参数对象。有什么指导吗?
void setLabelTextColors([int upColor = 0, int overColor = 0, int downColor = 0]) {
_lcUp = arguments.length > 0 ? upColor : -1;
...
}
答案 0 :(得分:2)
您可以使用问号运算符来查看是否已给出参数。
void setLabelTextColors([int upColor = 0, int overColor = 0, int downColor = 0]) {
_lcUp = ?upColor ? upColor : -1;
...
}
答案 1 :(得分:0)
从未听说过Dart,但这是代码转换
lcUp = -1
if(upColor!=0){
lcUp = upColor;
}
答案 2 :(得分:0)
void setLabelTextColors([int upColor, int overColor, int downColor]) {
int _lcUp = (upColor!=null) ? upColor : -1;
// ...
}
如果您的代码在“参数未提供”和“参数为空”之间有所不同,您也可以使用此代码:
void setLabelTextColors([int upColor, int overColor, int downColor]) {
int _lcUp = (?upColor) ? upColor : -1;
// ...
}
<强>更新强> 第二段代码将来不再适用 - see this issue.