用dart返回整数

时间:2018-12-21 20:50:02

标签: firebase dart flutter

我想做这样的事情:

int _radioValueGender == _radioValueGender

void setRadioValueGender(DocumentSnapshot document) {
    if (document['gender']=='female') {
        return _radioValueGender == 0;
    }
    else {
        return _radioValueGender == 1;
    }
}

我在这里根据if / else语句的结果设置整数_radioValueGender的值。我真的很感激任何帮助。我希望这很容易,这似乎是了解正确方法的问题。对于给您带来的不便,我们深表歉意。

3 个答案:

答案 0 :(得分:1)

  1. ==是等式比较运算符。它不执行变量赋值

  2. setRadioValueGender被声明为具有void返回类型。从中返回值是不正确的。

您想要的是:

void setRadioValueGender(DocumentSnapshot document) {
  if (document['gender']=='female') {
    _radioValueGender = 0;
  } else {
    _radioValueGender = 1;
  }
}

或更简洁:

void setRadioValueGender(DocumentSnapshot document) {
  _radioValueGender = (document['gender'] == 'female') ? 0 : 1;
}

答案 1 :(得分:1)

只需修改您的初始int _radioValueGender == _radioValueGender声明并使其为int _radioValueGender;。这样,它将强制该值成为任何int对象。

然后代替result来使用setState(() {_radioValueGender = 0 });,以便在按下“ setRadioValueGener”时随时修改变量。

答案 2 :(得分:1)

==是一个比较,当您键入时,您询问的是左右两个值是否相等。 =是一个赋值,当您键入它时,您是在从左到右赋值。因此只需将其更改为:

  void setRadioValueGender(DocumentSnapshot document) {
if (document['gender']=='female') {
  return _radioValueGender = 0;
}
else {
  return _radioValueGender = 1;
}
}