类实例的String变为null。为什么? (飞镖颤抖)

时间:2019-12-11 13:18:28

标签: object flutter dart instance

当我打印q1时,它为空。我希望看到问题印出来。

void main() {
  Question q1 = Question(
      q: 'You can lead a cow down stairs but not up stairs.', a: false);

  print(q1.questionAnswer);

}

class Question {
  String questionText;
  bool questionAnswer;
  Question({String q, bool a}) {
    q = questionText;
    a = questionAnswer;
  }
}

2 个答案:

答案 0 :(得分:1)

只需尝试将构造函数更改为

Question({String q, bool a}) {
    questionText = q;
    questionAnswer = a;
  }

dart中任何实例变量的默认值始终为null。

因此,在您的情况下, questionText questionAnswer 的值也将为null,因为dart中的所有内容都是一个对象。

答案 1 :(得分:1)

另一种方法是使用 this 关键字

class Question {
 String questionText;
 bool questionAnswer;

 Question({this.questionText, this.questionAnswer});
}

然后像这样使用它

void main() {
  Question q1 = Question(questionText: 'question text', questionAnswer: false);

  print(q1.questionAnswer);
}

here is the dart pad

相关问题