【问题标题】:Scala string interpolation from collections - n number of variables来自集合的 Scala 字符串插值 - n 个变量
【发布时间】:2019-04-17 17:53:30
【问题描述】:

我想从 scala 集合(Map、Seq、Hashtable)中插入字符串模式并填充文件路径。

${directory}/data/${fileName}

我的集合是一个包含目录和文件值的 Map[String,String]

args.directory 和 args.fileName

来自配置文件的输入 path_to_file: ${directory}/data/${fileName}

来自命令参数的输入: 目录=/temp,fileName=data.json

输出: path_to_file = /temp/data/data.json

有什么建议吗?

【问题讨论】:

  • 像这样使用它 s"${directory}/data/${fileName}" 它应该可以工作
  • 并且地图应该像 Map[String, List[String]] 作为值,我可以在一个目录中使用多个文件吗?
  • 我的插值(待)值来自一个地图集合,对于您提供的插值模式,您需要在 s(糖函数)范围内声明 vars
  • 不必声明可以使用 ListBuffer 的 var
  • 赞成的例子

标签: scala string-interpolation


【解决方案1】:

如果你有val args = Map("filename" -> "data.json", "directory" -> "temp")之类的东西, 然后s"${args("directory")}/data/${args("filename")}" 将评估为“/temp/data/data.json”

【讨论】:

  • 答案只有在只有两个键的情况下才会成立!但这个想法是对的,我已经更新了我的答案,谢谢!!
  • 嗯,是的......他就是这么说的:my collection looks like this: [fileName, 'someVal'] [Directory, 'someVal'] 所以......两个键。
猜你喜欢
  • 1970-01-01
  • 2021-07-13
  • 2012-10-26
  • 1970-01-01
  • 2015-04-10
  • 2013-06-11
  • 1970-01-01
  • 1970-01-01
  • 2019-06-03
相关资源
最近更新 更多