Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 在省道中将int转换为bool_Flutter_Dart_Implicit Conversion - Fatal编程技术网

Flutter 在省道中将int转换为bool

Flutter 在省道中将int转换为bool,flutter,dart,implicit-conversion,Flutter,Dart,Implicit Conversion,我有一个从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}); fac

我有一个从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;
  }
}
但这种转换似乎存在问题。我没有得到在dart中将
int
转换为
bool
的确切方法。上面说

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

试试这个:

value: widget.studentDetailsList[index].status == 1
试试这个:

value: widget.studentDetailsList[index].status == 1

无法将整数自动“转换”为布尔值

Dart对象有一个类型,将它们转换为不同的类型将意味着改变它们是哪个对象,而这是语言选择不为您做的事情

条件必须是布尔值,而整数不是布尔值

Dart很少有方法在不同类型的事物之间进行隐式转换。唯一的实际示例是将可调用对象转换为函数(通过删除
call
方法),如果上下文需要函数,则隐式地完成此操作。 (可以说,双精度上下文中的整型文字是“转换为双精度”的,但其中从来没有整数值。它被解析为双精度。)

因此,如果您有一个整数并且想要一个布尔值,您需要自己编写转换。 假设您希望零为假,非零为真。那么你所要做的就是写
myInteger!=0,或者在这种情况下:

value:widget.studentDetailsList[index]。状态!=0

无法自动将整数“转换”为布尔值

Dart对象有一个类型,将它们转换为不同的类型将意味着改变它们是哪个对象,而这是语言选择不为您做的事情

条件必须是布尔值,而整数不是布尔值

Dart很少有方法在不同类型的事物之间进行隐式转换。唯一的实际示例是将可调用对象转换为函数(通过删除
call
方法),如果上下文需要函数,则隐式地完成此操作。 (可以说,双精度上下文中的整型文字是“转换为双精度”的,但其中从来没有整数值。它被解析为双精度。)

因此,如果您有一个整数并且想要一个布尔值,您需要自己编写转换。 假设您希望零为假,非零为真。那么你所要做的就是写
myInteger!=0,或者在这种情况下:

value:widget.studentDetailsList[index]。状态!=0
尝试使用getter

bool get status {
    if(widget.studentDetailsList[index].status == 0)
              return false;
    return true;
}
然后将状态传递给值

value: status
尝试使用getter

bool get status {
    if(widget.studentDetailsList[index].status == 0)
              return false;
    return true;
}
然后将状态传递给值

value: status

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

myInt == 0 ? false : true;
myBool ? true : false;
要在Dart中将布尔值转换为整数,可以使用三元运算符:

myInt == 0 ? false : true;
myBool ? true : false;

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

myInt == 0 ? false : true;
myBool ? true : false;
要在Dart中将布尔值转换为整数,可以使用三元运算符:

myInt == 0 ? false : true;
myBool ? true : false;

?真:假是多余的。
?true:false
是多余的。