我正在将 AS3 代码翻译成 Dart。我已经部分翻译了以下内容,但我坚持如何处理 AS3 参数对象。有什么指导吗?
void setLabelTextColors([int upColor = 0, int overColor = 0, int downColor = 0]) {
_lcUp = arguments.length > 0 ? upColor : -1;
...
}
我正在将 AS3 代码翻译成 Dart。我已经部分翻译了以下内容,但我坚持如何处理 AS3 参数对象。有什么指导吗?
void setLabelTextColors([int upColor = 0, int overColor = 0, int downColor = 0]) {
_lcUp = arguments.length > 0 ? upColor : -1;
...
}
您可以使用问号运算符来查看是否已给出参数。
void setLabelTextColors([int upColor = 0, int overColor = 0, int downColor = 0]) {
_lcUp = ?upColor ? upColor : -1;
...
}
从未听说过 Dart 但这是代码转换
lcUp = -1
if(upColor!=0){
lcUp = upColor;
}
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;
// ...
}
更新 第二个片段在将来的某个时候将不再起作用 -请参阅此问题。