在 dart 中将 int 转换为 bool

Jam*_*aid 2 implicit-conversion dart flutter

我有一个从 JSON 导出的不同类型值的列表。

class StudentDetailsToMarkAttendance {
  int att_on_off_status;
  String name;
  String reg_number;
  int status;

  StudentDetailsToMarkAttendance(
      {this.att_on_off_status, this.name, this.reg_number, this.status});

  factory StudentDetailsToMarkAttendance.fromJson(Map<String, dynamic> json) {
    return StudentDetailsToMarkAttendance(
      att_on_off_status: json['att_on_off_status'],
      name: json['name'],
      reg_number: json['reg_number'],
      status: json['status'],
    );
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['att_on_off_status'] = this.att_on_off_status;
    data['name'] = this.name;
    data['reg_number'] = this.reg_number;
    data['status'] = this.status;
    return data;
  }
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用status的值作为Checkbox. 我正在尝试解析intString喜欢这个。

value:((widget.studentDetailsList[index].status = (1 ? true : false) as int)as bool)
Run Code Online (Sandbox Code Playgroud)

但是这个转换似乎有问题。我没有得到在飞镖中转换int为的确切方法bool。它说

条件必须具有“bool”的静态类型。

Adr*_*uri 7

要在 Dart 中将int转换为 bool,可以使用三元运算符:

myInt == 0 ? false : true;
Run Code Online (Sandbox Code Playgroud)

要在 Dart 中将bool转换为 int,可以使用三元运算符:

myBool ? 1 : 0;
Run Code Online (Sandbox Code Playgroud)

  • **int 到 bool** 的较短答案:`myInt == 1` (2认同)

Sou*_*ion 5

int我知道这是一个老问题,但我认为这是从 转换为 的干净方法bool

myBool = myInt.isOdd;
Run Code Online (Sandbox Code Playgroud)

或者零安全性

myBool = myInt?.isOdd ?? false;
Run Code Online (Sandbox Code Playgroud)


Sis*_*sir 0

尝试这个:

value: widget.studentDetailsList[index].status == 1
Run Code Online (Sandbox Code Playgroud)

  • `?true : false` 是多余的。 (3认同)