dart - 如果变量不为空,则为类设置参数
问题描述
仅当变量不为空时如何设置参数。是否有空感知运算符或技术?
例如:
this.startWidget = FormBuilderDateTimePicker(
key: UniqueKey(),
controller: _startController,
enabled: true,
// onChanged: _onChanged,
inputType: InputType.time,
decoration: InputDecoration(
labelText: 'Start Time',
),
initialTime: TimeOfDay(hour: 8, minute: 0),
initialValue: StartinitialValue,
enabled: true,
);
在这里,我initialValue: StartinitialValue
只希望 StartinitialValue 不为空。
我不想做以下事情:
if (StartinitialValue == null) {
this.startWidget = FormBuilderDateTimePicker(
key: UniqueKey(),
controller: _startController,
enabled: true,
// onChanged: _onChanged,
inputType: InputType.time,
decoration: InputDecoration(
labelText: 'Start Time',
),
initialTime: TimeOfDay(hour: 8, minute: 0),
enabled: true,
);
} else {
this.startWidget = FormBuilderDateTimePicker(
key: UniqueKey(),
controller: _startController,
enabled: true,
// onChanged: _onChanged,
inputType: InputType.time,
decoration: InputDecoration(
labelText: 'Start Time',
),
initialTime: TimeOfDay(hour: 8, minute: 0),
initialValue: StartinitialValue,
enabled: true,
);
}
什么是做我需要的正确方法?
解决方案
不。在函数调用中不传递参数的唯一方法是在调用中没有参数。你不能有一个参数表达式,如果它为空则被忽略。
您可以做的一件事是弄清楚如果省略参数,您调用的函数会做什么,然后自己传递相同的值......如果可能的话(如果函数使用默认值,则可能不是您不能从同一个库外部创建)。
在这种情况下,你很幸运。查看构造函数,不传递可选项与作为initialValue
值传递完全相同null
。(它是一个可选的可空参数,没有默认值,这意味着它有一个“默认默认值” null
)。
所以,initiaValue: StartinitialValue
即使StartinitialValue
is 也可以通过null
。它的工作原理与值为 时不传递参数完全相同null
。
推荐阅读
- angular - 如何在离子中实现搜索栏
- spring - spring integration:如何从 Spring Controller 调用 Spring Integration?
- javascript - 纯js在多语言的情况下计算字符输入
- jquery - 我们怎样才能让它无限滚动?
- python - 如何使列表中的项目永远运行 - python
- python - print和append方法中链表遍历的区别
- windows - WSL2 环境中的 git push 在写入对象步骤期间挂断
- database-design - 用于通知的 DynamoDB 表设计
- android - 颤动中 SliverAppBar 中资产的背景图像错误
- java - 来自子片段的过去值-> mainactivity 无法将 fragment_fr_event_Birthday 转换为 fragment_fr_event_wedding android studio