Dart中final函数参数有什么影响?

问题描述

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

/// Handler for the footer leading checkBox
void _onCheck(final bool value) {
  setState(() {
    _checked = value;
  });
}

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

由于传递给函数的变量已经在别处声明并且可能是var,那么在函数参数中使用final有什么影响?

解决方法

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

所以在这里,如果在函数中写入 value = false; 会出错,因为 value 是最终变量。如果您删除 final,您将不会收到任何错误。

除此之外,没有任何区别。