我有以下内容:
def retSomething(x: Int): Int => Int = x*x
assert(retSomething(5)(5) == 25)
assert(retSomething(1)(1) == 1)
assert(retSomething(1)(0) == 0)
但断言失败了。当然这是正确的,但它表示在运行时缺少实现。
答案 0 :(得分:5)
我认为您正在寻找的实施是:
def retSomething(x: Int): Int => Int = y => x * y
retSomething
方法的含义是什么?它需要Int
并返回一个函数Int => Int
。
函数Int => Int
需要另一个Int
并返回Int
。
因此,我们希望使用 new Int
的函数返回,这就是我们需要的原因:y => x * y
。
类型推断在这里效果很好,你不需要写(但可以):(y: Int) => x * y
答案 1 :(得分:0)
这会返回Int,同时期望Int => INT
def retSomething(x: Int): Int => Int = x*x
应该是
def retSomething(x: Int): Int => Int = x => x*x