В Dart вы обычно устанавливаете переменную напрямую, а не используете унарную функцию, начинающуюся с set
. То есть:
this.color = Colors.blue;
Публичные не финальные переменные отлично подходят, вы можете установить их напрямую.
Если вы хотите сделать что-то большее во время установки, вы должны использовать getter и setter с закрытой переменной:
Color get color => _color;
set color(Color newColor) {
logColorChange(_color, newColor);
_color = newColor;
}
// and then still write:
this.color = Color.blue;
Если на самом деле это не проблема установщика, а просто проблема именования общих параметров, то Dart не позволяет указывать разные внешние и внутренние имена для одного и того же именованного параметра. Если вы хотите другое имя, вы должны будете объявить его в методе:
void setColor({Color to}) {
Color newColor = to;
this.color = newColor;
}
Мне не известно ни о каком предыдущем запросе на такую функцию, возможно, потому что именованные параметры в Dart всегда являются необязательными, поэтому они не используются так часто, как требуемые позиционные параметры для начала, а использование setFoo(to: something)
выглядит как накладные расходы просто setFoo(something)
или setFooTo(something)
.
«Настоящий Программист может писать программы на Фортране на любом языке.»
Дротик - это не Свифт, он отличается многими очевидными и тонкими способами. Если вы попытаетесь написать Swift in Dart, вы будете разочарованы. Я рекомендую вместо этого написать идиоматический Дарт и посмотреть, как это будет выглядеть через некоторое время.