Эта стрелка в позиции типа является просто сокращением для черты Function1[+T1,-R]
, поэтому String => String
переводится в Function1[String,String]
.Она называется Тип функции .
Забавно, что можно использовать любой конструктор типов, который принимает два параметра типа в качестве оператора infix , например, вы можете свернуть свой собственный(по общему признанию довольно бесполезный) Туплер:
type Pair[T1,T2]=Tuple2[T1,T2]
val a: String Pair String = ("this","that")
Единственное, что делает эту стрелку несколько особенной, - это то, что у нее есть собственное имя в спецификации языка и его ассоциативность справа (примечание: вы также можете определить свое право-ассоциативные операторы, но их имя оканчивается на :
).