Dart 中最终函数参数有什么影响?

Nat*_*ram 3 final function-parameter dart

我最近发现可以包含final在函数参数中。

/// Handler for the footer leading checkbox
void _onCheck(final bool value) {
  setState(() {
    _checked = value;
  });
}
Run Code Online (Sandbox Code Playgroud)

但是,此功能没有在任何地方记录,并且无法搜索有关此主题的任何信息。

由于传递给函数的值已经在其他地方声明并且可以使用,那么在函数参数中var使用有什么影响?final

lrn*_*lrn 5

它的工作原理就像声明任何其他变量一样final- 变量在初始化后就无法更改。参数实际上只是一个局部变量,其中初始化值来自调用者而不是局部表达式。

value = false;所以在这里,如果你在函数中写入,你会得到一个错误,因为value是一个最终变量。如果您删除了final.

除此之外,没有什么区别。

  • 编译器是否使用此信息进行优化? (2认同)