Size: a a a

Programming Offtop

2021 February 25

KD

Konstantin Dovnar in Programming Offtop
Ilmir
А вот про присваивание если не нал можно поподробнее? А именно юз-кейс. Ибо заводить новую переменную только для того, чтобы обойти ограничения языка - это не очень.
Вот выше.
Инициализация переменной дефолтным значением, если пользователь передал налл.
источник

I

Ilmir in Programming Offtop
Konstantin Dovnar
Вот выше.
Инициализация переменной дефолтным значением, если пользователь передал налл.
Дефолтных аргументов нет в дарте?
источник

AM

Andrew Mikhaylov in Programming Offtop
Konstantin Dovnar
Не вижу мотивации.

class Theme{
   final Color primaryColor;

   Theme(this.primaryColor) : primaryColor ??= defaultPrimaryColor;
}
То есть первая инициализация в конструкторе, вторая после него, и при этом переменная файнал?
источник

KD

Konstantin Dovnar in Programming Offtop
Ilmir
Дефолтных аргументов нет в дарте?
Есть, но тогда ты сможешь пробросить налл. (Это если без налл сейфти, разумеется)
источник

KD

Konstantin Dovnar in Programming Offtop
Andrew Mikhaylov
То есть первая инициализация в конструкторе, вторая после него, и при этом переменная файнал?
Переменная либо там, либо там.
Если передал значение, то вторая инициализация проигнорится.
источник

KD

Konstantin Dovnar in Programming Offtop
А, ещё очень понравилась организация именованных аргументов в Дарте. Особенно с налл-сейфти.
источник

AM

Andrew Mikhaylov in Programming Offtop
Konstantin Dovnar
Переменная либо там, либо там.
Если передал значение, то вторая инициализация проигнорится.
Совершенно отвратительно скользкая хуйня, раз оператор присвоения может не считаться оператором присвоения. Я как-то упустил эту фишку.
источник

I

Ilmir in Programming Offtop
Konstantin Dovnar
Есть, но тогда ты сможешь пробросить налл. (Это если без налл сейфти, разумеется)
А, ну тогда, по идее, покрыто нал-сейфти. Если дефолтное значение не нал, то и нал туда передать не получится и смысла в этой фиче нет.
источник

KD

Konstantin Dovnar in Programming Offtop
Andrew Mikhaylov
Совершенно отвратительно скользкая хуйня, раз оператор присвоения может не считаться оператором присвоения. Я как-то упустил эту фишку.
В смысле не считаться? Это и есть оператор присвоения. Условный if(this == null) this == value.
источник

KD

Konstantin Dovnar in Programming Offtop
Ilmir
А, ну тогда, по идее, покрыто нал-сейфти. Если дефолтное значение не нал, то и нал туда передать не получится и смысла в этой фиче нет.
Да, но фича появилась задолго до налл-сейфти в дарте.
источник

AM

Andrew Mikhaylov in Programming Offtop
Konstantin Dovnar
В смысле не считаться? Это и есть оператор присвоения. Условный if(this == null) this == value.
Да, но возможность его вызвать на файнал-переменной, которая уже была потенциально проинициализирована выше...
Надо с плейграундом поиграться будет, чтобы понять, это особый случай для конструктора или нет.
источник

KD

Konstantin Dovnar in Programming Offtop
Andrew Mikhaylov
Да, но возможность его вызвать на файнал-переменной, которая уже была потенциально проинициализирована выше...
Надо с плейграундом поиграться будет, чтобы понять, это особый случай для конструктора или нет.
Да, так и есть.
источник

I

Ilmir in Programming Offtop
Konstantin Dovnar
А, ещё очень понравилась организация именованных аргументов в Дарте. Особенно с налл-сейфти.
Это которая с фигурными скобками? Можно, кстати, объявить обязательные именованные аргументы?
источник

AM

Andrew Mikhaylov in Programming Offtop
Ага, и вот это тоже не работает:
  final int? a = null;
 a ??= 3;

Тогда вопросов, наверное, нет.
источник

KD

Konstantin Dovnar in Programming Offtop
Ilmir
Это которая с фигурными скобками? Можно, кстати, объявить обязательные именованные аргументы?
Да, оно самое.
С наллсейфти можно.
Ввели специальное ключевое слово required.
источник

I

Ilmir in Programming Offtop
Konstantin Dovnar
Да, оно самое.
С наллсейфти можно.
Ввели специальное ключевое слово required.
А, тогда нал-сейфти это типа новая версия языка со всеми новыми фишками.
источник

KD

Konstantin Dovnar in Programming Offtop
Забавно, кстати.
Сейчас глянул в проекте те места, где были ??= до введения NS. А оно так и осталось, вместо переменных по умолчанию.
источник

KD

Konstantin Dovnar in Programming Offtop
Ilmir
А, тогда нал-сейфти это типа новая версия языка со всеми новыми фишками.
В целом да.
Но, что забавно, собирать с включенным NS не выйдет, если есть хотя бы одна библиотека не поддерживающая его.
источник

I

Ilmir in Programming Offtop
Konstantin Dovnar
В целом да.
Но, что забавно, собирать с включенным NS не выйдет, если есть хотя бы одна библиотека не поддерживающая его.
Ну да, ну да. "sound null safety", чтоб его. Маркетинг сильнее здравого смысла.
источник

KD

Konstantin Dovnar in Programming Offtop
Ilmir
Ну да, ну да. "sound null safety", чтоб его. Маркетинг сильнее здравого смысла.
Йеп.
А потом как ебаклак при каждой сборке --no-sound-null-safety
источник