这两个变体有什么区别?如果函数 _getCsvDocunent 只是空类型,那么如果我们像onPressed: () => _getCsvDocunent(),
这样定义onPressed,那意味着什么?
FlatButton(
child: Text('Provide .csv data file'),
onPressed: _getCsvDocunent,
),
vs
FlatButton(
child: Text('Provide .csv data file'),
onPressed: () => _getCsvDocunent(),
),
答案 0 :(得分:0)
onPressed:_getCsvDocunent
中:onPressed
获得对传递给它的_getCsvDocument
的引用。仅当要传递的功能已经已定义并且与onPressed
兼容时,这种传递引用的方式才可能。onPressed: () => _getCsvDocunent()
中:onPressed
获取由返回的值
_getCsvDocunent
执行完毕后。onPressed: () => _getCsvDocunent()
中:onPressed
得到的对_getCsvDocument
的引用与第一个要点完全相似,不同之处在于,在这种情况下是函数引用(_getCsvDocument
)直接传递到onPressed
,而不是使用内联函数返回对_getCsvDocument
的引用。