这个Dart箭头函数怎么能在它的函数体中有语句呢?



如果你看到这个Google I/O'19演示:https://youtu.be/d_m5csmrf7I?t=498

在8:18,在_onValueChanged中,有

setState(()=>_value = value);

但在Dart官方网站上,它说只有"表达式"可以出现在胖箭头后面(=>):

=比;expr语法是{returnexpr的简写;} .

(实际上和setState((){return _value = value})是一样的)

我认为赋值_value=value是一个语句,而不是表达式。

这怎么可能?

没有矛盾。赋值是表达式的一种类型。这就是像这样的代码:

int x;
int y;
x = y = 42;

有效:x = y = 42是一个复合表达式,它被求值为x = (y = 42)

最新更新