我想使用gradle.properties
中的值,这些值应该放入模板字符串中。
第一步:
println("${project.properties[somekey]}")
不工作:Unresolved reference: somekey
需要引号吗?
println("${project.properties["somekey"]}")
的语法是完全错误的:Expecting an expression
为第一个。
我找不到任何例子如何做到这一点,然而官方文档说表达式.
问题:是否可以在字符串模板中访问map,如果可以,如何访问?
是,并且如下:
"${project.properties["someKey"]}"
假设Map具有以下签名:Map<String, Any?>
(或Map<Any...
)
选择:
"${project.properties.getValue("someKey")}"
"${project.properties.getOrElse("someKey") { "lazy-evaluation-default-value" }}"
"${project.properties.getOrDefault("someKey", "someFixedDefaultValue")}"
基本上所有的代码你放在${}
只是普通的Kotlin代码…不需要进一步的引号/转义,除了美元符号$
本身,例如使用"$test"
,如果你不希望它被一个名为test
或"""${"$"}test"""
的变量替换,如果你使用一个原始字符串
注意,在这个println
的情况下,下面的内容也足够了(这也适用于上面显示的所有替代方案)。您可以完全省略外部引号和${}
):
println(project.properties["someKey"])
参见基本类型-字符串模板