Dart/Flutter箭头函数表达式混乱



我对Navigator实现中的箭头语法感到困惑:

Navigator.push(
MaterialPageRoute(
context,
builder: (context) => aWidgetConstructor()
)
)

据我猜测,第4行与相似

Widget build(Buildcontext context){
return aWidgetConstructor(
...
)
}

那么,如何解释这种语法工作,以及为什么函数表达式不能命名呢?

谢谢。

这个问题很简单。这就是语言的语法。箭头函数或匿名函数是没有名称的函数。这是使用这种技术的函数式语言流行的结果,这种技术简化并最小化了代码的长度。这是简单而强大的。

另一方面,继承是OOP语言的结果,这些语言显示了接口和契约对标准化和概括外部代码使用的重要性。这在java中得到了普及,编程社区对此表示赞同。

两种解决方案的操作都可以用函数指针很容易地解释。更难解释的是箭头函数的上下文继承。了解C++的人可以更好地解释,但你可以想象箭头函数只是另一个类,它捕获了自己的所有外部值,并使用这些引用来完成任务。

最新更新