首页 > 解决方案 > 如果变量不为空,则为类设置参数

问题描述

仅当变量不为空时如何设置参数。是否有空感知运算符或技术?

例如:

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,
    );
}

什么是做我需要的正确方法?

标签: dart

解决方案


不。在函数调用中不传递参数的唯一方法是在调用中没有参数。你不能有一个参数表达式,如果它为空则被忽略。

您可以做的一件事是弄清楚如果省略参数,您调用的函数会做什么,然后自己传递相同的值......如果可能的话(如果函数使用默认值,则可能不是您不能从同一个库外部创建)。

在这种情况下,你很幸运。查看构造函数传递可选项与作为initialValue值传递完全相同null。(它是一个可选的可空参数,没有默认值,这意味着它有一个“默认默认值” null)。

所以,initiaValue: StartinitialValue即使StartinitialValueis 也可以通过null。它的工作原理与值为 时不传递参数完全相同null


推荐阅读