2017-02-07 3 views
-1

У меня вопрос о общих функциях в Scala. Предположим, у меня есть простая функция, как это (надуманный пример):Причина определения первого типа типа

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

почему это требует первый [A]? а в том, почему я не могу иметь подпись,

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

Почему голос? – mercurial

ответ

2

Потому что в любое время на языке программирования, который вы ссылаетесь на переменную в какой бы то ни, что вам нужно определить его где-нибудь. A - это параметрический тип, то есть он как переменная, но относится к типу. A не является константой, то есть известной для какого-то другого контекста, поэтому для этого требуется определение.

Это фактическое значение будет предоставлено конкретно при вызове метода.

Смежные вопросы