Краткий ответ: нет сокращения.Ваш код хороший.
Очень короткий ответ: это зависит.;)
Если вы думаете об окружающей кодовой базе, вы можете придумать другую архитектуру в целом.
Вы можете также передать null конструктору
x = SomeClass(y);
изатем задайте разумное значение по умолчанию в вашем списке инициализатора:
class SomeClass {
dynamic _value;
SomeClass(value) _value = value ?? '';
}
или сгенерируйте исключение:
var nullError = Exception('Null value not allowed');
class SomeClass {
dynamic _value;
SomeClass(value) _value = value ?? (throw nullError);
}
, хотя более идиоматический способ будет таким:
class SomeClass {
dynamic _value;
SomeClass(value) {
ArgumentError.checkNotNull(value);
_value = value;
}
Поскольку я ничего не знаю об остальной части вашего кода, я не могу дать вам правильный ответ.Но я предлагаю вам спросить себя:
Откуда берется это значение z?Что это значит? (Если вы работаете в большом проекте, вы можете использовать Dependency Injection или Factories.)
Возможно, у меня есть компонент вида, где он пустстроки более полезны, чем нули?
Вот некоторые вещи, которые я хотел бы спросить сам.Но если вы взламываете быстрый сценарий, это может быть длинный выстрел.Возможно, вы уже выполнили свою задачу, и, возможно, вам действительно не нужна была запись в первую очередь.