【发布时间】:2020-08-12 10:16:16
【问题描述】:
我希望通过字符串插值来处理变量值。
val temp = "1 to 10 by 2"
println(s"$temp")
预期输出:
inexact Range 1 to 10 by 2
但得到
1 to 10 by 2
有什么办法可以做到吗?
编辑 使用 StringContext 的正常情况是:
$> s"${1 to 10 by 2}"
inexact Range 1 to 10 by 2
这将返回范围从 1 到 10,步长值为 2。
而且字符串上下文不适用于变量,所以有没有办法我可以这样做
$> val temp = "1 to 10 by 2"
$> s"${$temp}" //hypothetical
这样解释器会将其评估为
s"${$temp}" => s"${1 to 10 by 2}" => Range from 1 to 10 by step of 2 = {1,3,5,7,9}
【问题讨论】:
-
里面有什么逻辑吗?您是否需要检测“范围不准确”?如果是这样,请描述该逻辑(并提供更多示例)。如果没有,
s"inexact Range $temp". -
@Thilo:我添加了编辑,请看一下。
-
所以您的问题非常具有误导性。您想计算来自文件的任意 Scala 代码。这基本上是 REPL 的工作。您需要编译它然后运行它。或者可能不是任意代码,而是只是范围的小语法?然后,您需要为该语法编写一个小型解析器。 - 无论如何,这个问题应该关闭,因为它不清楚并打开一个新问题,其中包含你真正需要做的所有细节,并展示你解决它的尝试。
标签: scala string-interpolation