问题描述
我最近发现可以在函数参数中包含 final
。
/// Handler for the footer leading checkBox
void _onCheck(final bool value) {
setState(() {
_checked = value;
});
}
但是,此功能未在任何地方记录并且无法搜索有关此主题的任何信息。
由于传递给函数的变量已经在别处声明并且可能是var
,那么在函数参数中使用final
有什么影响?
解决方法
它的工作原理类似于将任何其他变量声明为 final
- 变量在初始化后无法更改。
参数实际上只是一个局部变量,其中初始化值来自调用者而不是局部表达式。
所以在这里,如果在函数中写入 value = false;
会出错,因为 value
是最终变量。如果您删除 final
,您将不会收到任何错误。
除此之外,没有任何区别。