我对飞镖和扑打是陌生的,我试图使用内联函数返回一个值。
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
),
-生成但在运行时失败 错误:类型'()=> double'不是强制类型转换中'double'类型的子类型
答案 0 :(得分:0)
height
的类型为double
。在第一个示例中,您正在执行_getheight()
,然后将执行结果作为名为height
的参数给出。
在第二个示例中,您试图为height
提供一个函数作为参数(键入为double Function()
),因为自定义height
接受double
以来,该函数是不允许的
您可以这样做:
SizedBox(
height: (){return 20.0;}()
),
将执行该方法(请参见最后的()
),并将返回值用作height
的参数。