Size: a a a

2021 June 04

PD

Prunkles Dreemurr in F# Chat
А всего-то надо было пить активные паттерны по утрам...
источник

RS

Rustam Sayfutdinov in F# Chat
А чтобы сделать абстрактный класс с виртуальным методом и дефолтной реализацией это только так?
источник

AH

Ayrat Hudaygulov in F# Chat
abstract + default, да
источник

RS

Rustam Sayfutdinov in F# Chat
Ок, спасибо. Похоже чистое ООП сложно на фшарп натягивать :)
источник

AH

Ayrat Hudaygulov in F# Chat
Я бы не согласился что ООП подразумевает наследование.

Фшарп пропагандирует композицию.
источник

RS

Rustam Sayfutdinov in F# Chat
Ну да, в композицию надо еще научиться хорошо
источник

AH

Ayrat Hudaygulov in F# Chat
ООП не про наследование, а про возможность создавать объекты с поведением и далее общаться с ними, инкапсулируя логику.

Таким образом ООП является средством абстрагирования и структурирования программ.

Нигде тут наследование не требуется
источник

VK

Viacheslav Koryagin in F# Chat
А по-моему, этого как раз не хватает в фарше и должно было быть изначально, потому что паттерн матчинг везде (это как будто идеология F# :) ), и я был очень удивлён, когда обнаружил, что в объявлении пропертей его нет
источник

g

gsomix in F# Chat
Можно посмотреть в сторону функциональной композиции.
источник

RS

Rustam Sayfutdinov in F# Chat
Ага, надо бы так и сделать, потом
источник

AK

Alex K in F# Chat
+
ооп не про наследование. ооп про полиморфизм и сообщения.
источник

MS

Michael Snytko in F# Chat
а когда инициализируются поля в типе? при первом обращении к полю или при создании типа?
источник

AH

Ayrat Hudaygulov in F# Chat
При создании экземпляра
источник

MS

Michael Snytko in F# Chat
вот сюда зашло, а в мембер нет. должно же быть наоборот?
источник

AH

Ayrat Hudaygulov in F# Chat
Но мембер это не поле же
источник

MS

Michael Snytko in F# Chat
черт
источник

AH

Ayrat Hudaygulov in F# Chat
Пока мембер не вызовут, он не вызовется)
источник

I

IdiocyAcceptance in F# Chat
Я бы посоветовал следовать гайд лайнам и называть мемберы с большой буквы, а функции модулей с маленькой, ну и всякие приватные биндинги, поля и прочее
источник

I

IdiocyAcceptance in F# Chat
Иначе у тебя будет уродливая каша при работе с методами одних м тех же объектов
источник

I

IdiocyAcceptance in F# Chat
Как на скрине. Часть с маленькой, часть с большой
источник