【发布时间】:2011-12-12 16:03:49
【问题描述】:
scala 中是否有相当于 Pythons repr 的函数?
即一个你可以给任何 scala 对象的函数,它会产生一个对象的字符串表示,它是有效的 scala 代码。
例如:
val l = List(Map(1 -> "a"))
print(repr(l))
会产生
List(Map(1 -> "a"))
【问题讨论】:
-
我认为这在像 python 这样更动态的语言中更有意义,因为你可以稍后
eval那个字符串并用它做一些事情 -
我不认为这样的特性真的有意义,因为 Scala 是一种静态类型的语言。我想您可以将
#toSource()方法混合到您创建的任何类中,但在我看来,您这样做的唯一原因是为了教育(或者可能是出于调试目的)。 -
是的..我不会调试它。这也是我在 python 中使用它的原因。
-
我个人使用这样的功能来编译手工游戏,作为中间表示。所以即使没有 eval,也可以用来创建 scala 代码以供进一步重用。
标签: scala