Diese problematisch sein würde, weil, was Sie entfernen nie wirklich überflüssig war. Wenn die Funktion als def fun[T](...)
definiert ist, wird T
als neue Typvariable definiert. Ansonsten bezieht es sich auf eine Typ- oder Typvariable, die an anderer Stelle definiert wird. Sie scheinen zu glauben, dass
def fun(somevar: SomeType[T]) { ... }
bedeuten soll, dass T
ist eine neue Art Variable. Ist das aber immer so? Nicht in diesem Code:
trait T { ... }
def fun(somevar: SomeType[T]) { ... }
Wohin gehen wir dann von dort? Definieren Sie neue Typvariablen immer dann, wenn auf einen Typnamen verwiesen wird, der vorher nicht definiert wurde? Das würde die folgenden Kompilierfehler wirklich komisch machen. (Oder noch schlimmer, manchmal erlauben, sie zu kompilieren?)
def fun(somevar: SomeType[Integr]) { ... }
class C[Thing] {
def g(x: List[Think]) = ...
}
Für die Kompilierung-Typ-checking Philosophie der Scala, auf diese Weise liegt Wahnsinn.
Möchten Sie nur die zusätzlichen Zeichen eingeben, wenn Sie die Funktion definieren? Oder hoffen Sie, etwas anderes zu gewinnen? –
Nun, als Programmierer ist es kein Problem; Das Problem ist, dass wir eine Scala-basierte Sprache für Benutzer erstellen (die keine Scala-Programmierer sind), um sie zu benutzen; Aus diesem Grund versuchen wir, es für Nicht-Scala-Benutzer so einfach wie möglich zu machen. – Daniel
Was ich meinte war, gibt es andere Situationen, die Sie mit dieser Änderung verbessern möchten, außer der Art, wie der Funktionsname geschrieben wird, wenn er definiert wird?Vielleicht ein Code, wenn es aufgerufen wird, oder etwas anderes? –