代码之家  ›  专栏  ›  技术社区  ›  GhostCat

如何访问模板字符串中的地图?

  •  2
  • GhostCat  · 技术社区  · 4 年前

    gradle.properties 应该放在模板字符串中。

    天真的第一个:

    println("${project.properties[somekey]}")
    

    Unresolved reference: somekey

    那么,需要报价吗?

    println("${project.properties[\"somekey\"]}")
    

    完全破坏了语法: Expecting an expression 第一次。

    documentation 表达 .

    1 回复  |  直到 4 年前
        1
  •  2
  •   Roland    4 年前

    "${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")}"
    

    基本上你在 ${} $ "\$test" 如果不想用名为 test """${"$"}test""" 如果使用原始字符串

    println 在这种情况下,以下内容也就足够了(这也适用于上面所示的所有备选方案)。你可以省略外面的引号和 ${} 总共):

    println(project.properties["someKey"])
    

    另请参见 Basic types - String templates