Ausgabe
Gibt es in Scala 3 eine Möglichkeit, derives
Schlüsselwörter in Kombination mit undurchsichtigen Typaliasen zu verwenden? Es wäre schön, eine Boilerplate-freie Möglichkeit zu haben, eine Typklasseninstanz für einen bestimmten undurchsichtigen Typalias bereitzustellen, indem automatisch auf die Instanz derselben Typklasse für den zugrunde liegenden Typ (falls vorhanden) zurückgegriffen wird.
Wäre schön, die Möglichkeit zu haben, so etwas auszudrücken
opaque type Id = Int
object Id:
given Show[Id] = Show.intShow
für eine hypothetische Typklasse Show
, as
opaque type Id = Int derives Show
Lösung
Sie sehen daran, syntax.md
dass es derzeit kein solches Konstrukt gibt.
Auch wenn eine solche Syntax verfügbar wäre, bin ich mir nicht sicher, ob dies das Standardverhalten sein sollte. Die Motivation hinter der Verwendung von opaque type
s besteht darin, den neuen Typ vom zugrunde liegenden zu unterscheiden. Obwohl ich verstehe, warum es nützlich wäre, es zu haben, nur nicht als Standard.
Vielleicht wäre hier etwas Ähnliches wie bei Haskell deriving via
eine gute Ergänzung. Es könnte ein guter Kandidat für ein SIP sein .
Beantwortet von – KacperFKorban
Antwort geprüft von – Candace Johnson (FixError Volunteer)