用于小部件属性的 flutter 匿名/内联函数
flutter anonymous / inline functions for widget properties
我是 dart 和 flutter 的新手,我正在尝试使用内联函数 return 一个值。
SizedBox(
height: _getheight()
),
double _getheight(){
//do some stuff
return 20.0;
}
//WORKS
SizedBox(
height: (){return 20.0;}
),
//(Won't build)
错误:无法将参数类型 'double Function()' 分配给参数类型 'double'。
SizedBox(
height: (){return 20.0;} as double
),
--构建但在运行时失败
错误:type '() => double' 不是类型 cast
中类型 'double' 的子类型
height
正在采用 double
类型的值。在您的第一个示例中,您正在执行 _getheight()
然后将此执行的结果作为名为 height
.
的参数给出
在你的第二个例子中,你试图给 height
一个函数作为参数(输入为 double Function()
)这是不允许的,因为 height
被定义为采用 double
.
然后你可以这样做:
SizedBox(
height: (){return 20.0;}()
),
这将执行该方法(参见最后一个 ()
)并将返回值用作 height
的参数。
我是 dart 和 flutter 的新手,我正在尝试使用内联函数 return 一个值。
SizedBox(
height: _getheight()
),
double _getheight(){
//do some stuff
return 20.0;
}
//WORKS
SizedBox(
height: (){return 20.0;}
),
//(Won't build)
错误:无法将参数类型 'double Function()' 分配给参数类型 'double'。
SizedBox(
height: (){return 20.0;} as double
),
--构建但在运行时失败 错误:type '() => double' 不是类型 cast
中类型 'double' 的子类型height
正在采用 double
类型的值。在您的第一个示例中,您正在执行 _getheight()
然后将此执行的结果作为名为 height
.
在你的第二个例子中,你试图给 height
一个函数作为参数(输入为 double Function()
)这是不允许的,因为 height
被定义为采用 double
.
然后你可以这样做:
SizedBox(
height: (){return 20.0;}()
),
这将执行该方法(参见最后一个 ()
)并将返回值用作 height
的参数。