, если при вызове по значению
по значению & по имени в Scala => взаимно однозначное соответствие
val f: (Int) => Int = {(i) => {i * i}} # f: Int => Int = <function1>
является сокращением для
val f: Function1[Int, Int] = {(i) => {i * i}} # f: Int => Int = <function1>
тогда, когда по телефону по-умолчанию
val f: (=> Int) => Int = {(i) => {i * i}} # f: (=> Int) => Int = <function1>
является сокращением для
? что ?
и если
при вызове по значению
val f = {(i) => {i * i}}:(Int) => Int # f: Int => Int = <function1>
является сокращением для
val f = {(i) => {i * i}}:Function1[Int, Int] # f: Int => Int = <function1>
затем при вызове по имени
val f = {(i) => {i * i}}:(=>Int) => Int # f: (=> Int) => Int = <function1>
является сокращением для
? что ?
другими словами
, если (Int) => Int это сокращение для FUNCTION1 [Int, Int]
затем (=> Int) => Int является стенография для ? что ?
Спасибо!
Спасибо Сет. Я боялся, что это будет ответ, и, честно говоря, мне это не нравится. Для меня это языковая несогласованность. В любом случае, хорошо знать (по крайней мере, для текущей версии Scala версии 2.11.6), что такой эквивалентности не существует. (В настоящее время я изучаю Scala, пытаясь сохранить организованный материал, но в этом случае модель, которую я искал, не очень хорошо подходила) –