rya*_*an 4 inline-functions dart
我是 dart 和 flutter 的新手,我正在尝试使用内联函数返回一个值。
SizedBox(
height: _getheight()
),
double _getheight(){
//do some stuff
return 20.0;
}
//WORKS
Run Code Online (Sandbox Code Playgroud)
SizedBox(
height: (){return 20.0;}
),
//(Won't build)
Run Code Online (Sandbox Code Playgroud)
错误:参数类型“double Function()”无法分配给参数类型“double”。
SizedBox(
height: (){return 20.0;} as double
),
Run Code Online (Sandbox Code Playgroud)
--构建但在运行时失败错误:类型 '() => double' 不是类型转换中类型 'double' 的子类型
height正在获取类型的值double。在第一个示例中,您正在执行_getheight(),然后将此执行的结果作为名为 的参数给出height。
在第二个示例中,您尝试给出height一个函数作为参数(类型为double Function()),这是不允许的,因为height被定义为采用double.
然后你可以这样做:
SizedBox(
height: (){return 20.0;}()
),
Run Code Online (Sandbox Code Playgroud)
它将执行该方法(请参阅最后一个())并使用返回值作为 的参数height。
| 归档时间: |
|
| 查看次数: |
2873 次 |
| 最近记录: |