如何在模板字符串中访问映射?



我想使用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"])

参见基本类型-字符串模板

相关内容

  • 没有找到相关文章

最新更新