这段代码在scala中意味着什么?

mat*_*iit 3 syntax scala

def func(arg: String => Int): Unit = {
    // body of function
}
Run Code Online (Sandbox Code Playgroud)

我的意思是这个片段:String => Int

Pab*_*dez 9

简短的回答

它是一个接收String并返回Int的函数

答案很长

在Scala中,功能是一等公民.这意味着您可以将它们存储在变量中(或者就像在这种情况下)将它们作为参数传递.

这就是函数文字的样子

() => Unit
Run Code Online (Sandbox Code Playgroud)

这是一个不接收参数并返回Unit的函数(java等效于void).

这将是一个接收String作为参数并返回Int的函数:

(String) => Int
Run Code Online (Sandbox Code Playgroud)

另外,scala让你删除括号作为一种语法糖,就像你的例子.前面arg:只是参数的名称.

func你可以在里面调用函数receive(arg),如下所示:

val result = arg("Some String") // this returns a Int
Run Code Online (Sandbox Code Playgroud)