gpt4 book ai didi

flutter - 对象属性可以用作函数参数吗?

转载 作者:IT王子 更新时间:2023-10-29 07:09:03 26 4
gpt4 key购买 nike

我有一个具有多个 bool 属性的类:

class aTest {
String name;
bool twoGroups;
bool continuous;
bool parametric;
bool covariates;
bool paired;

aTest(
{this.name,
this.twoGroups,
this.continuous,
this.parametric,
this.covariates,
this.paired});
} //end aTest

我还有一个包含 aTest 实例的列表:

List<aTest> testList = [
aTest(
name: "independent samples t-test",
twoGroups: true,
continuous: true,
parametric: true,
covariates: false,
paired: false),
//followed by a bunch of similar objects
]

在我的应用程序的其他地方,我过滤了 List<aTest>程序如下:

void isParametric(bool value) {
List<aTest> newList = [];
for (aTest test in testList) {
if (test.parametric == value || test.parametric == null) {
newList.add(test);
}
}
testList = newList;
}

void isTwoGroups(bool value) {
List<aTest> newList = [];
for (aTest test in testList) {
if (test.twoGroups == value || test.twoGroups == null) {
newList.add(test);
}
}
testList = newList;
}

(我不知道这是否是从 List. 中过滤和删除对象的最佳方法)这些过程之间的所有不同之处在于对象属性,例如 test.parametrictest.twoGroups在上面的代码中。

有没有办法重构代码?有点像
void filter (aBooleanPropertyGoesHere, bool value)

最佳答案

您可以简单地通过 where 方法用一个衬里的列表进行过滤。

    var parametricList = testList.where((i) => (i.continuous && i.parametric == null)).toList()
   var twoGroupsList = testList.where((i) => (test.twoGroups == value || test.twoGroups == null)).toList()

像这样的东西 https://dartpad.dev/79a7e9aa5882af745b6ff2cb55815921

有关详细说明,请查看 documentation

关于flutter - 对象属性可以用作函数参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57363292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com