Size: a a a

Scala User Group

2021 August 04

SB

S B in Scala User Group
смотри че в доках напиано про совместимость со Скала2: http://dotty.epfl.ch/docs/reference/changed-features/pattern-matching.html#fixed-arity-extractors
источник

SB

S B in Scala User Group
я пытаюсь это поженить
источник

S

Simon in Scala User Group
источник

N

Nikolai in Scala User Group
@willtakeyoutothecandyshop, смотри. Давай обратимся к документации "unapply takes an object and tries to give back the arguments". То есть это функция обратная конструктору, она должна вернуть те аргументы, которые нужно дать классу чтобы его сконструировать. То есть когда ты делаешь возвращаемое значение типа Option[Header], тебе будет возвращаться именно Foo.Header(Foo.Header). Внутренний хедер - это то что ты возвращаешь из своего unapply, а внешний говорит о том, в какой unapply надо смотреть
источник

KC

Kain Crow in Scala User Group
источник

SK

Sergey Klimov in Scala User Group
и что непонятного написано там? То, что у тебя в результате unapply стоит, то и будет находиться внутри скобок потом. Ты поставил Header, поэтому и будет в итоге Header(_: Header)
источник

N

Nikolai in Scala User Group
Так как unapply должен вернуть аргументы, а в случае класса с пустым конструктором это сделать невозможно, то единственный выход в данном случае - использовать булеан
источник

SB

S B in Scala User Group
это конечно все хорошо, только официальные же доки на скалу3 приводят примеры где 13 match case Even() =>. то есть, прямой связи с "обратное конструктору" уже давно не наблюдается во многих кейсах. а у меня задача-то относительно простая, есть функция, которая из строки уходит в может_быть Хидер и я хотел КРАСИВО влепить это в анплай, полагаясь на ссылу на доку выше про совместимость.
источник

SB

S B in Scala User Group
но как-то вот передумал после этой замечательной дискуссии
источник

N

Nikolai in Scala User Group
Можно ссылку на место в доках? Ты про это?
источник

SB

S B in Scala User Group
ога
источник

SK

Sergey Klimov in Scala User Group
Так там и стоит Boolean в результате unapply, тебе решение это предложили, а ты отказался от него
источник

SB

S B in Scala User Group
вы бы мне еще предложили на Раст переписать
источник

N

Nikolai in Scala User Group
Там используется булеан
источник

SB

S B in Scala User Group
как это меняет твою дефиницию анплая как действия, обратного конструктору?
источник

KC

Kain Crow in Scala User Group
источник

SB

S B in Scala User Group
лол
источник

SB

S B in Scala User Group
ладно, я тут бурю поднял, вообще я не хотел бурю, я просто хотел красиво match написать, уже пожалел, спасибо что откликнулись, но я пожалуй заматчу по-старинке как диды и прадедиды.
источник

SK

Sergey Klimov in Scala User Group
Покажи потом хоть, что получится
источник

SB

S B in Scala User Group
ну можно к произведению свести задачу и тогда, кстати, анплай будет рабоать. в духе:
строка match {
case (Some(Header), None) => ...
case (None, Some(Body)) => ..
источник