Size: a a a

2021 January 14

YT

Yogurt The Horse in F# Chat
Там на самом деле бросается эксепшен при попытке сделать null
источник

YT

Yogurt The Horse in F# Chat
из рекорда
источник

YT

Yogurt The Horse in F# Chat
так что не прокатило, не фортануло
источник

YT

Yogurt The Horse in F# Chat
я в итоге просто юзаю эксепшены и обычный First
источник

I

IdiocyAcceptance in F# Chat
Vlad Zaa
Можно сделать
let inline isNull value = (value = null)
и
let inline isNullRef value = obj.ReferenceEquals(value, null)
Второй будет быстрее по-идее, первый будет GenericEqualityIntrinsic юзать
Он не будет работать для типов, для которых не проставлен AllowNullLiteral вроде как же
источник

YT

Yogurt The Horse in F# Chat
чтобы не ломать голову
источник

YT

Yogurt The Horse in F# Chat
IdiocyAcceptance
Он не будет работать для типов, для которых не проставлен AllowNullLiteral вроде как же
а на рекорд его нельзя проставить, к слову
источник

VS

Vladimir Shchur in F# Chat
Yogurt The Horse
Есть C# класс в котором делается FirstOrDefault над перечислением фаршевых рекордов. Default для рекорда - null. Как проверить рекорд на нулл? :D
я сравниваю с unchecked.defaultOf
источник

VZ

Vlad Zaa in F# Chat
IdiocyAcceptance
Он не будет работать для типов, для которых не проставлен AllowNullLiteral вроде как же
Ну тогда (box value = null). (Но на самом деле не надо так делать)
источник

SN

Shub Niggurath in F# Chat
Vlad Zaa
Ну тогда (box value = null). (Но на самом деле не надо так делать)
А как надо?
источник

g

gsomix in F# Chat
isNull + box
источник

g

gsomix in F# Chat
Vladimir Shchur
я сравниваю с unchecked.defaultOf
Так тоже не надо делать.
источник

g

gsomix in F# Chat
источник

SN

Shub Niggurath in F# Chat
gsomix
isNull + box
Я так и делаю, но дошел до этого чисто по эстетическим причинам. Просто подумал, что плохо - именно box
источник

g

gsomix in F# Chat
Нет, box тут бесплатный, в отличие от =.
источник

SN

Shub Niggurath in F# Chat
А, ну ок. Я в данном случае проверял IL, вроде нормально все было. Как можно догадаться, в .net я не разбираюсь от слова «совсем». Рихтера почитать что ли
источник

VS

Vladimir Shchur in F# Chat
gsomix
Так тоже не надо делать.
Но оно как-то работало) Как приду за комп - проверю
источник

I

IdiocyAcceptance in F# Chat
Shub Niggurath
А, ну ок. Я в данном случае проверял IL, вроде нормально все было. Как можно догадаться, в .net я не разбираюсь от слова «совсем». Рихтера почитать что ли
Ну знаешь, если ты не гонишься за производительностью или некоторой "абсолютной правильностью", то пожалуй можно и не разбираться)
источник

I

IdiocyAcceptance in F# Chat
Просто с точки зрения языка как такового правильная конструкция - что-то = null. Это естественно, это ожидаемо. То, что компилятор генерит где-то субоптимальный код, не должно быть проблемой 99% юзеров наверное
источник

g

gsomix in F# Chat
Да, бОльшая проблема, что компилятор не подсказывает.
источник