【发布时间】:2017-05-24 06:39:29
【问题描述】:
我一直在 Typesafe 配置中使用environment variable substitution 功能:
foo = "foo"
foo = ${?FOO}
如果没有名为FOO 的环境变量,这将导致“foo”的“默认”值。在这种情况下,第二个值声明(foo = ${?FOO} 被简单地丢弃)。但是,如果存在名为FOO 的变量,则库将“替换”FOO 的值并将其分配给foo。
我希望数组有类似的行为,但不幸的是,这不能按预期工作:
foo = [ "1", "2" ]
foo = [ ${?f1}, ${?f2} ]
如果没有定义f1 和f2,这只会导致foo 是一个空数组。我的目标是产生与上述类似的效果(如果没有定义环境变量 f1 和 f2,则丢弃第二个 foo)。任何想法/建议表示赞赏。谢谢。
【问题讨论】:
-
不理想,但如果您能够在应用程序代码中处理此问题,您是否可以将默认值附加到环境中的可选值,然后执行例如长度检查?
foo = [ ${?f1}, ${?f2} ]foo += "1"foo += "2"以上将为您提供环境中设置的任何内容,然后是两个默认值。您也可以从foo的空数组开始,并附加两个环境变量。