Scala 仅当满足条件时定义设置

Scala 仅当满足条件时定义设置,scala,sbt,Scala,Sbt,关于条件设置的问题。我试图仅在满足特定条件时定义设置: 惰性val proj=项目 .settings(/*其他设置…*/) .settings((如果(条件)Seq(foo:=bar.value)否则Seq.empty):\u*) 除此之外,如果我能在个人设置的基础上这样做,我的代码看起来会更清晰,例如: project.settings( //其他设置。。。 如果(条件)(foo:=棒值)其他(孔:=零) //其他设置。。。 ) 有没有一种整洁且被接受的方式来实现这一点?什么是“单像

关于条件设置的问题。我试图仅在满足特定条件时定义设置:


惰性val proj=项目
.settings(/*其他设置…*/)
.settings((如果(条件)Seq(foo:=bar.value)否则Seq.empty):\u*)

除此之外,如果我能在个人设置的基础上这样做,我的代码看起来会更清晰,例如:


project.settings(
//其他设置。。。
如果(条件)(foo:=棒值)其他(孔:=零)
//其他设置。。。
)


有没有一种整洁且被接受的方式来实现这一点?什么是“单像零点”设置的最佳候选设置?

您可以使用
。配置

val prj = project.settings(...).configure { p =>
  if (foo) {
    p.settings(...)
  } else p
}

您可以使用
。配置

val prj = project.settings(...).configure { p =>
  if (foo) {
    p.settings(...)
  } else p
}

为什么不直接使用
settingKey[Option[which]]
?通过
设置[Option[\u]]]
我最终分配了
一些(…)
。当条件的计算结果为false时,我希望完全避免赋值。奇怪的是,如果您希望访问(有条件地)未定义的设置,您希望它具有哪个值?如果我避免赋值给键,我希望它具有事先指定的任何值。仔细想想,这听起来有点像
~=
。啊,好吧,你的意思是更改设置的值,而不是定义新的设置。那么我想你的问题必须相应地重新表述。为什么不直接使用
settingKey[Option[which]]
?通过
设置[Option[\u]]
我最终分配了
一些(…)
。当条件的计算结果为false时,我希望完全避免赋值。奇怪的是,如果您希望访问(有条件地)未定义的设置,您希望它具有哪个值?如果我避免赋值给键,我希望它具有事先指定的任何值。仔细想想,这听起来有点像
~=
。啊,好吧,你的意思是更改设置的值,而不是定义新的设置。我想,你的问题必须相应地重新表述。试着把它合并到一个设置序列中试着把它合并到一个设置序列中