2011-04-25 66 views
2

在Scala中,我可以創造一個接收多於一個參數列表的方法:調用Scala的構造有多個參數列表

def myMethod(value: Int)(fn: (Int) => Unit) { 
    fn(value) 
} 

,並調用它像這樣:

myMethod(10) { value => println(value) } 

我該怎麼辦與類構造函數相同的東西?我如何稱呼它?

回答

9

This Works。

Welcome to Scala version 2.8.1.final (Java HotSpot(TM) Client VM, Java 1.6.0_22). 
Type in expressions to have them evaluated. 
Type :help for more information. 

scala> class MyClass(val value: Int)(val fn: Int => Unit) 
defined class MyClass 

scala> new MyClass(10)({value => println(value)}) 
res0: MyClass = [email protected] 
+2

啊!額外的括號。我在沒有它們的情況下嘗試了它,編譯器將其解析爲將類作爲匿名子類進行擴展。 – Ralph 2011-04-25 14:09:49

+1

也可能沒有內括號「{}」:new MyClass(10)(value => println(value)) – 2011-04-26 06:37:39

相關問題