Size: a a a

F# Flood: Диванная теория всего

2020 July 29

н

невидимка in F# Flood: Диванная теория всего
Aleksandr Drozdov
Литерал None тоже можно сунуть куда угодно
литерал None<T> (это важный момент)
источник

AD

Aleksandr Drozdov in F# Flood: Диванная теория всего
Но T же выводится
источник

н

невидимка in F# Flood: Диванная теория всего
дело не в выводе
источник

A

Anatoly in F# Flood: Диванная теория всего
Aleksandr Drozdov
Но T же выводится
None<int> не тоже самое, что и None<string>
источник

AD

Aleksandr Drozdov in F# Flood: Диванная теория всего
Ты литерал null используешь в двух контекстах:
- при инициализации переменной (там неважно, потому что тип есть у самой переменной)
- при сравнении с переменной (та же история)
источник

AD

Aleksandr Drozdov in F# Flood: Диванная теория всего
И там и там нам не важен T в None<T> , потрму что он однозначен, и так же не важно какой у тебя null
источник

A

Anatoly in F# Flood: Диванная теория всего
да, всё это было бы круто, если бы null<string> не подставлялся в null<object>
источник

A

Anatoly in F# Flood: Диванная теория всего
а он подставляется
источник

A

Anatoly in F# Flood: Диванная теория всего
(и наоборот)
источник

A

Anatoly in F# Flood: Диванная теория всего
ну и моё любимое - со всеми этими флажками я всё ещё могу просунуть тебе null в non-nullable ref type и у тебя всё взорвётся
источник

AD

Aleksandr Drozdov in F# Flood: Диванная теория всего
Anatoly
ну и моё любимое - со всеми этими флажками я всё ещё могу просунуть тебе null в non-nullable ref type и у тебя всё взорвётся
В фшарпе тоже
источник

AD

Aleksandr Drozdov in F# Flood: Диванная теория всего
Ну тут thanks to dotnet в принципе
источник

AD

Aleksandr Drozdov in F# Flood: Диванная теория всего
Anatoly
да, всё это было бы круто, если бы null<string> не подставлялся в null<object>
ну во я не понимаю, что такое null<object> и null<string>. Хорошо бы видеть пример, где это происходит
источник

AD

Aleksandr Drozdov in F# Flood: Диванная теория всего
Это что ли?
object? o = null;
string? s = o?.ToString();
источник

R

Roman in F# Flood: Диванная теория всего
Ayrat Hudaygulov
Не, А0 нужен! Кульман и вперде
Частичка Боинга живёт в тебе
источник

н

невидимка in F# Flood: Диванная теория всего
Aleksandr Drozdov
И там и там нам не важен T в None<T> , потрму что он однозначен, и так же не важно какой у тебя null
это важно когда у тебя есть нулл и его надо проматчить/пройтись рефлексией/etc. и тебе надо знать, какой там был тип на самом деле
источник

н

невидимка in F# Flood: Диванная теория всего
сериализация, построение запросов, что там ещё
источник

н

невидимка in F# Flood: Диванная теория всего
еще на нулл не вешаются никакие расширения (или тайпклассы если они в языке есть), пока его явно не прибиндить к типу
источник

M

Mikhail in F# Flood: Диванная теория всего
Aleksandr Drozdov
Ну тут thanks to dotnet в принципе
И это расстраивает конечно
источник

VK

Vladislav Khapin in F# Flood: Диванная теория всего
Aleksandr Drozdov
В фшарпе тоже
Ты не можешь положить нулл в переменную класса или рекорда на фшарпе если они были написаны на фшарпе. Компилятор не даст без allownullliteral. В остальных случаях даст
источник