1

我正在将 AS3 代码翻译成 Dart。我已经部分翻译了以下内容,但我坚持如何处理 AS3 参数对象。有什么指导吗?

void setLabelTextColors([int upColor = 0, int overColor = 0, int downColor = 0]) {
  _lcUp = arguments.length > 0 ? upColor : -1;
  ...
}
4

3 回答 3

2

您可以使用问号运算符来查看是否已给出参数。

void setLabelTextColors([int upColor = 0, int overColor = 0, int downColor = 0]) {
  _lcUp = ?upColor ? upColor : -1;
  ...
}
于 2013-05-02T21:36:45.497 回答
0

从未听说过 Dart 但这是代码转换

lcUp = -1
if(upColor!=0){
  lcUp = upColor;
}
于 2013-05-02T17:42:38.557 回答
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;
  // ...
}

更新 第二个片段在将来的某个时候将不再起作用 -请参阅此问题。

于 2013-05-02T23:53:19.793 回答