我想使用来自 gradle.properties
的值,这些值应该进入模板字符串。
天真的第一:
println("${project.properties[somekey]}")
不起作用:未解析的引用:somekey
那么,需要引号吗?
println("${project.properties[\"somekey\"]}")
语法完全错误:第一个 需要一个表达式
。
我找不到任何示例如何做到这一点,但官方 documentation说表达式。
问题:是否可以在字符串模板中访问 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"])
关于dictionary - 如何访问模板字符串中的 map ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66168436/