2017-02-07 2 views
-1

Ich habe eine Frage zu generischen Funktionen in Scala. Angenommen, ich habe eine einfache Funktion wie dieses (erfundenes Beispiel):Grund zu spezifizieren ersten generischen Typ

def subList[A](list:List[A], start:Int, elementCap:Int): List[A] ={ 

warum erforderlich macht es die ersten [A]? wie in warum nicht kann ich die Signatur

def subList(list:List[A], start:Int, elementCap:Int): List[A] ={ 
+0

warum die down vote? – mercurial

Antwort

2

Da jederzeit in einer Programmiersprache haben, dass Sie eine Variable welcher Art auch immer zu verweisen, müssen Sie es irgendwo definieren. Ein ist ein parametrischer Typ, dh es ist wie eine Variable, aber es bezieht sich auf einen Typ. A ist keine Konstante, das heißt für einen anderen Kontext bekannt, also braucht es eine Definition.

Der tatsächliche Wert wird konkret angegeben, wenn die Methode tatsächlich aufgerufen wird.

Verwandte Themen