Использование final для параметров Dart

#parameters #dart #final

#параметры #dart #Финал

Вопрос:

Я ничего не вижу по этому поводу в руководстве по стилю. Более того, просматривая код Dart SDK и некоторые пакеты pub, я не вижу, чтобы какие-либо параметры объявлялись как окончательные. На самом деле, чтобы сразу перейти к делу, я нигде не видел, чтобы это было сделано. (Это может просто отражать мой недостаток опыта!)

Очевидно, что делать это объявление нормально, и редактор Dart использует аннотацию, чтобы помечать переназначения как ошибки.

ИТАК .. слишком ли хорошо использовать final с параметрами, разве это не идиоматический Dart, это на самом деле хорошо, или с ним нет разработанного обычая?

Ответ №1:

Я думаю, что большинству людей все равно, и они просто ничего не пишут, потому что это короче. Добавление «final» приведет к непреднамеренному присвоению параметра, но я думаю, это просто не то, что происходит достаточно часто, чтобы стоить накладных расходов.

Мне бы не хотелось иметь руководство по стилю, которое требует, чтобы я писал «final» перед всеми моими параметрами. Если я нигде не присваиваю ему значение, я бы ожидал, что компилятор распознает параметр как фактически постоянный (в случае, если есть какая-либо разница в производительности).

Комментарии:

1. Это примерно то, что я предполагаю также — компилятор должен иметь возможность выполнять трассировку, необходимую для доказательства того, что переменная переназначена или не переназначена. Но тогда зачем вообще комментировать? Просто для статической двойной проверки. Что я предоставлю, делает мой код Dart более сильным, чем соответствующий JavaScript. Но обычно это не окончательное / не окончательное различие, а скорее проверка типа.