#parameters #dart #final
#параметры #dart #Финал
Вопрос:
Я ничего не вижу по этому поводу в руководстве по стилю. Более того, просматривая код Dart SDK и некоторые пакеты pub, я не вижу, чтобы какие-либо параметры объявлялись как окончательные. На самом деле, чтобы сразу перейти к делу, я нигде не видел, чтобы это было сделано. (Это может просто отражать мой недостаток опыта!)
Очевидно, что делать это объявление нормально, и редактор Dart использует аннотацию, чтобы помечать переназначения как ошибки.
ИТАК .. слишком ли хорошо использовать final с параметрами, разве это не идиоматический Dart, это на самом деле хорошо, или с ним нет разработанного обычая?
Ответ №1:
Я думаю, что большинству людей все равно, и они просто ничего не пишут, потому что это короче. Добавление «final» приведет к непреднамеренному присвоению параметра, но я думаю, это просто не то, что происходит достаточно часто, чтобы стоить накладных расходов.
Мне бы не хотелось иметь руководство по стилю, которое требует, чтобы я писал «final» перед всеми моими параметрами. Если я нигде не присваиваю ему значение, я бы ожидал, что компилятор распознает параметр как фактически постоянный (в случае, если есть какая-либо разница в производительности).
Комментарии:
1. Это примерно то, что я предполагаю также — компилятор должен иметь возможность выполнять трассировку, необходимую для доказательства того, что переменная переназначена или не переназначена. Но тогда зачем вообще комментировать? Просто для статической двойной проверки. Что я предоставлю, делает мой код Dart более сильным, чем соответствующий JavaScript. Но обычно это не окончательное / не окончательное различие, а скорее проверка типа.