是否可以在Scala中使用函数来初始化类参数?
示例:
def square(x: Int) = x*x
class Foo(val x: Int = square(x))这不能编译,但我希望您能理解。
发布于 2013-01-30 01:39:15
这就是..。您可以使用函数!:)初始化一个类
class Foo(f : Int => Int)
def square(x : Int) = x*x
val foo = new Foo(square)或许你一定是在找这个。
class Foo(f : Int => Int, _p1 : Int){
val p1 = f(_p1)
}
def square(x : Int) = x*x //> square: (x: Int)Int
def add2(x : Int) = x+2 //> add2: (x: Int)Int
val fooSqr = new Foo(square,5)
fooSqr.p1 //> res0: Int = 25
val fooAdd2 = new Foo(add2,5)
fooAdd2.p1 //> res1: Int = 7https://stackoverflow.com/questions/14586539
复制相似问题