Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 与签名()匹配的匿名函数=>;单位:斯卡拉_Scala_Types_Anonymous Function - Fatal编程技术网

Scala 与签名()匹配的匿名函数=>;单位:斯卡拉

Scala 与签名()匹配的匿名函数=>;单位:斯卡拉,scala,types,anonymous-function,Scala,Types,Anonymous Function,下面的代码行是不言自明的 type a = () => Unit def k(a_ : a) = { a_() } def g(): Unit = { println("Hello World") } k(g) 我的问题是,在调用k时,如何指定类型为a的匿名函数?我希望以下几行也是不言自明的: scala> k(() => println("Hello!")) //to your first question Hello! 关于第二个问题: scala>

下面的代码行是不言自明的

type a = () => Unit

def k(a_ : a) = {
  a_()
}

def g(): Unit = {
  println("Hello World")
}

k(g)

我的问题是,在调用k时,如何指定类型为
a
的匿名函数?

我希望以下几行也是不言自明的:

scala> k(() => println("Hello!")) //to your first question
Hello!
关于第二个问题:

scala>  def k(i: Int)(a_ : a) = {
  a_(i)
}
k: (i: Int)(a_: Int => Unit)Unit

scala> k(5)(g)
Swami saranam 5

另外,我不建议使用小写的别名。

在同一行中,
type a=Int=>Unit
def k(a:a)={
,要执行上述函数
k(a:a)
,我将无法指定
a()
,因为它需要Int参数,如何执行该函数第二点是您必须指定输入
I
,所以你需要一些函数来处理它-所以我写了
print
函数-它用
I
调用
k
g
的组合,而
I
但是我的
类型a=Int=>单位这次不同了,在
k
的函数体中不能有
a()
要执行该函数,如果我听起来有点困惑,很抱歉只需在
k
中再添加一个参数即可,我已经用示例更新了答案