0
我的方法(函數)列表,輸出Unit
:規範的方式來定義和執行輸出單位的方法?
var fns:List[() => Unit] = Nil
def add(fn:() => Unit) = fns :+= fn // a method to add to the list
我想補充println("hello")
到列表中。
add(() => println("hello"))
有沒有比使用醜陋圓括號更好的方法。
我寧願:
add (println("hello")) // error here
def myCoolMethod = {
// do something cool
// may return something, not necessarily Unit
}
add (myCoolMethod) // error here
我試圖var fns:List[_ => Unit]
和var fns:List[Any => Unit]
,fns:List[() => Any]
等沒有得到我想要的東西。
第二個問題是當我想如何執行列表中的方法。我得到它的工作:
fns foreach (_.apply)
有沒有更好的方法?
我們可以有一個'add'接受方法的Seq'而不是一個方法嗎?所以我可以添加(Seq(println(「hello」),myCoolMethod))'。 – Jus12 2014-10-20 07:38:31
@ Jus12:不,你不能在沒有宏的情況下得到重複的名字參數。 – senia 2014-10-20 08:00:05