小编DSR*_*DSR的帖子

Scala可选地提供命名的默认参数

假设我们有一个类构造函数,它接受具有默认值的参数.

class A(val p1 : Int = 3, val p2 : Int = 4) 
Run Code Online (Sandbox Code Playgroud)

假设我无法控制这个类,无论如何都无法修改它.我想要做的是调用A的构造函数,其中p1 = 5,p2 =(如果condition1 == true则为5,否则为默认值).一种方法是

if(condition1)
  x = new A(5,5)
else
  x = new A(5)
Run Code Online (Sandbox Code Playgroud)

如您所见,如果有许多参数,每个参数都必须有条件地提供,这很容易变大.我想要的是类似的东西

x = new A(p1 = 5, p2 = <if condition1 = true then 5 else default>)
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?请注意,A类中的字段是val,因此在实例化A后我无法更改它们.

scala

9
推荐指数
1
解决办法
557
查看次数

标签 统计

scala ×1