Size: a a a

2021 June 15

VS

Vasily Shapenko in F# Chat
Китаец, начинал с xamarin forms
источник

I

IdiocyAcceptance in F# Chat
Тогда если тебе нужен ещё this, ты сделаешь member (Pattern x as this).Foo() ?
источник

I

IdiocyAcceptance in F# Chat
Спасибо, но нет.
источник

I

IdiocyAcceptance in F# Chat
В целом, конечно, система с явным this меня удивляет, но такая запись делает её ещё страшнее, честно.
источник

PD

Prunkles Dreemurr in F# Chat
Однако если бы это был аргумент к обычной функции, например
let foo (SomePattern x) = …
let foo ((SomePattern x) as thisLike) = …
, то ты именно это и должен будешь сделать. И ничего, всех устраивает
источник

PD

Prunkles Dreemurr in F# Chat
Хотя так никто и не делает. Но такая возможность есть
источник

VS

Vasily Shapenko in F# Chat
Тех, кто этим пользуется, как я понимаю. А процент невелик
источник

PD

Prunkles Dreemurr in F# Chat
Согласен, никто не будет ещё раз явно через as получать аргумент в изначальном виде. Проблема в том, что если тебе это понадобилось, то лучше активным паттерном в аргументе не пользоваться вообще, и применить другие меры.

Но я к тому, что данная ситуация практически полностью аналогична предлагаемым активным паттернам в this в методах
источник

PD

Prunkles Dreemurr in F# Chat
То есть, разницы между
let foo this = ()
и
member this.Foo() = ()
по сути не так уж и много. Но активный паттерн разрешено использовать только в первом случае, почему-то
источник

AH

Ayrat Hudaygulov in F# Chat
а ещё можно вместо this паттерн разрешить
type Id = 
 Id of int
 member (Id i).Value = i


на правах юмора
источник

AH

Ayrat Hudaygulov in F# Chat
А блин, ты это же предлагал 5ю постами выше
источник

AH

Ayrat Hudaygulov in F# Chat
Да что ж такое, уже всё пошутили
источник

PD

Prunkles Dreemurr in F# Chat
Но разве это не было бы удобно? Анврапить сингл кейс дюшки периодически надо, а методы для этого писать в виде
type Id =
 | Id of int
 member this.Value = let (Id x) = this in x

ну совсем непристойно выглядит
источник

AH

Ayrat Hudaygulov in F# Chat
наверное было бы, не сказал бы что это добавляет очень много валуе
источник

PD

Prunkles Dreemurr in F# Chat
А скинутый выше рфс предлагает сильно больше?
источник

AH

Ayrat Hudaygulov in F# Chat
я очень редко пишу тайп касты - мне не сильно полезно
источник

AH

Ayrat Hudaygulov in F# Chat
в основном тайп касты в кетч блоках (у меня)
источник

VS

Vasily Shapenko in F# Chat
Давай ты попишешь значимое количество кода в прод, периодически переписывая куски, потом будем предметно говорить. Пока это монолог теоретика
источник

AH

Ayrat Hudaygulov in F# Chat
но, наверное это полезно. Возможно какой-то код сломается!

старый код вида

| :? Exception as None -> ...

с новым пропозалом не будет компилиться)
но надо быть особенным человеком чтобы случайно попасть своим идентификатором (их обычно пишут с маленькой буквы) в имя паттерна (они ОБЯЗАНЫ начинаться с заглавной)
источник

g

gsomix in F# Chat
Оно мотивирован FS-1092 - Anonymous Type-tagged Unions.
источник