Flutter 在省道中将int转换为bool
我有一个从JSON导出的不同类型值的列表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
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
是多余的。