Но в ООП абстрактные методы резолвятся через позднее связывание, при реализации метода точный тип реализации невозможно определить или сослаться. В расте методы в имплементациях трейта резолвятся через раннее связывание, поэтому тип будет известен компилятору в точке реализации и на него можно сослаться
Один из вариантов обойти проблему Self- типа в ООП с баундед генениками - это так называемый F-bound, который как бы рекомендует юзеру явно указывать Self- тип в аргументе трейта
всем добрый день. подскажите, пожалуйста, как правильно закодить такое? option.map{ case obj: Subclass => doThing1 obj} //1 .map(_ => doThing2 _ ) //2 .foreach(x => assert (x == obj)) //3 я правильно понимаю, что мне нужно протащить состояние из первой строчки в третью? как это правильно сделать?
всем добрый день. подскажите, пожалуйста, как правильно закодить такое? option.map{ case obj: Subclass => doThing1 obj} //1 .map(_ => doThing2 _ ) //2 .foreach(x => assert (x == obj)) //3 я правильно понимаю, что мне нужно протащить состояние из первой строчки в третью? как это правильно сделать?
Сформулируйте задачу без скалакода, и мы вам с ним поможем? Не очень понятно что вы хотите сделать.
Сформулируйте задачу без скалакода, и мы вам с ним поможем? Не очень понятно что вы хотите сделать.
окей. есть Option. со значением (если есть) надо сделать несколько операций, затем проверить,что значение не поменялось. т.е. свериться с изаначальным значением.
окей. есть Option. со значением (если есть) надо сделать несколько операций, затем проверить,что значение не поменялось. т.е. свериться с изаначальным значением.