下面的代碼行不言自明匿名函數匹配簽名()=>單位:斯卡拉
type a =() => Unit
def k(a_ : a) = {
a_()
}
def g(): Unit = {
println("Hello World")
}
k(g)
我的問題是如何指定a
類型的匿名函數調用時K +
下面的代碼行不言自明匿名函數匹配簽名()=>單位:斯卡拉
type a =() => Unit
def k(a_ : a) = {
a_()
}
def g(): Unit = {
println("Hello World")
}
k(g)
我的問題是如何指定a
類型的匿名函數調用時K +
我希望這些線路也言自明:
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
別名。
我明白第一個答案,謝謝你。 –
第二是無論如何你必須指定你的輸入'i',所以你需要一些函數來處理它 - 所以我寫了'print'函數 - 它需要'i'並且調用'k'和'g '''''''' – dk14
但我的'type a = Int => Unit'這次是不同的,在'k'的函數體中不能有'a _()'來獲得執行的功能,對不起,如果我聽起來很困惑 –
以相同的線,'鍵入= INT => Unit' 'DEF K(A_:1)= {'' a_' '}' 'DEF克(I:智力):單位= {' 'println(「Hello World」+ i)' '}' 'k(g)',要執行上述函數'k(a_:a)',我將無法指定'一個_()',因爲它會期望Int參數,如何執行該功能 –