为什么“ def put(x:Int):Unit”有效,但“ def put(x:Int):()”无效吗?

时间:2019-05-20 19:49:48

标签: scala

为什么在Unit是返回类型的情况下执行以下工作

def put(x: Int): Unit

同时将()用作返回类型

def put(x: Int): ()

给出了=> expected错误。这两个签名有什么区别?

1 个答案:

答案 0 :(得分:8)

请注意,()是类型Unit的值,类似于7是类型Int的值,所以写

def put(x: Int): ()

有点像写

def f(x: Int): 7

我们错误地将放在期望返回 type 的位置。