In Idris, Typen sind erstklassige Werte:Verwenden von Typen als erstklassige Werte in Scala?
FooType : (Type, Type)
FooType = (Int, Int)
fst FooType -- Int : Type
Ich mag würde irgendwie diese Funktion in Scala verwenden, so dass ich Typ-Mitglieder über verschiedene Methoden wiederverwenden können:
class Foo {
type FooType = (Int, Int)
def foo : FooType = { ... }
def bar : Int = { ... } // Here I would like to reuse the first type of FooType (Int)
}
Was das ist Empfohlene Methode, dies in Scala zu erreichen?
'FooType' ist für den Bereich verfügbar, auf dem es definiert wurde. Was meinst du mit * Wiederverwendung von Typmitgliedern über verschiedene Methoden *? Was hindert Sie daran, 'FooType' überall zu verwenden? –
@YuvalItzchakov 'FooType' hat den Typ' Tuple2 [T1, T2] ', ich möchte in der Lage sein, Methoden zu definieren, die auf Typmembern von' FooType' basieren, z. "' FooType._1' "(T1) statt einfach' Int', damit meine definierten Typen wiederverwendet werden. Ich bin mir nicht sicher, ob das möglich ist. – jarandaf
Oh, ich verstehe. Sie möchten, dass 'FooType' basierend auf Mitgliedern einer Klasse abgeleitet wird? –