【问题标题】:flutter anonymous / inline functions for widget properties颤振小部件属性的匿名/内联函数
【发布时间】:2020-07-10 13:04:08
【问题描述】:

我是飞镖和颤振的新手,我正在尝试使用内联函数来返回一个值。

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' 的子类型

【问题讨论】:

    标签: dart inline-functions


    【解决方案1】:

    height 采用double 类型的值。在您的第一个示例中,您正在执行_getheight(),然后将此执行的结果作为名为@9​​87654324@ 的参数给出。

    在你的第二个例子中,你试图给height一个函数作为参数(类型为double Function())这是不允许的,因为height被定义为采用double

    你可以这样做:

    SizedBox(
    height: (){return 20.0;}()
    ),
    

    它将执行方法(参见最后一个())并将返回的值用作height的参数。

    【讨论】:

    • 谢谢!完全有道理,我从来没有执行过内联函数。
    猜你喜欢
    • 2019-05-23
    • 1970-01-01
    • 2021-06-10
    • 2021-07-07
    • 1970-01-01
    • 2021-11-13
    • 1970-01-01
    • 2021-06-11
    • 2018-10-18
    相关资源
    最近更新 更多