dictionary - 如何访问模板字符串中的地图?
问题描述
我想使用gradle.properties
应该进入模板字符串的值。
先天真:
println("${project.properties[somekey]}")
不起作用:Unresolved reference: somekey
那么,需要报价吗?
println("${project.properties[\"somekey\"]}")
完全破坏了语法:Expecting an expression
对于第一个 .
我找不到任何示例如何执行此操作,但官方文档中说expression。
问题:是否可以访问字符串模板中的地图,如果可以,如何访问?
解决方案
是的,如下:
"${project.properties["someKey"]}"
假设地图具有以下签名:(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"])
另请参阅基本类型 - 字符串模板
推荐阅读
- python - RNN 和 CNN-RNN 不能正确训练,总是预测一类
- css - 如何使 3 个项目填充具有特定行和列的 6x6 网格?
- php - Laravel/artisan 在 puphpeteer 包中找不到“节点”
- python - 如何制作列表的列表元素列表
- batch-file - 文件夹命名器中的批量递归 For 循环和非 ASCII 字符
- r - 有没有办法处理涉及 R 中大值指数的计算?
- javascript - 在 React-ace 中设置值时出现类型错误
- python - 在 pandas 列中出现许多不同的事件
- vb.net - 随机数生成器重复输出值
- couchbase - CbBackup 工具在集群中的特定存储桶不活动 30 秒后被中断