Функции и функциональные литералы в scala
Я новичок в Скале. Пожалуйста, расскажите разницу между
def fun( t: Int => Int):Unit = {
а также
def fun(t: =>Int):Unit {
а также
def fun(t:=>Int):Unit { (without space b/w ":" and "=>"))
1 ответ
def fun( t: Int => Int):Unit
это метод, который принимает один аргумент, t
, Его тип, Int => Int
это функция, которая принимает Int
и возвращает Int
, Тем не менее, тип возвращаемого значения fun
является Unit
,
def fun(t: =>Int):Unit
это метод, который принимает вызов по имени аргумента t
, Опять же, тип возвращаемого значения этого метода Unit
,
Смотрите, что такое "Позвонить по имени"? тоже.
Там нет разницы между вторым и третьим методами.