我是dart和flutter的新手,我正在尝试使用内联函数来返回值。
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"的子类型
height
采用类型为double
的值。在第一个示例中,您正在执行_getheight()
,然后将此执行的结果作为名为height
的参数给出。
在第二个示例中,您试图给height
一个函数作为参数(类型为double Function()
(,这是不允许的,因为height
被定义为接受double
。
然后你可以做:
SizedBox(
height: (){return 20.0;}()
),
它将执行该方法(请参阅最后一个()
(,并将返回的值用作height
的参数。