【发布时间】:2016-02-11 12:55:35
【问题描述】:
我认为在 scala 中编程的最大缺点是,由于大量代码是合成/匿名类的一部分,堆栈跟踪和默认的“toString”日志通常几乎无用。
编译器生成更有用的类名/toString 方法是否有充分的理由/障碍?我觉得将方法具体化为函数和分配给命名 val 的函数至少是打印方法/val 名称而不是“函数”的良好候选者。让 lambdas 的类名显示定义它们的方法的名称也很好,但类似 '$$lambda' 之类的东西会有所改进。
可能可以使用宏来完成 - 有人已经这样做了,还是深入研究 scala 宏的好人选?
【问题讨论】:
-
您的问题是什么?目前,这似乎更像是一个提议/咆哮,而不是一个实际的问题。
-
宏只会让情况变得更糟。你需要破解底层的 JVM 来修复你的堆栈跟踪。
-
“有人已经这样做了吗?”而且我相信如果不影响生成的类的名称,宏至少可以添加一个更有帮助的“toString”实现。我不知道它们是否纯粹在本地工作,或者是否可以将内联类更改为命名实体
标签: scala anonymous-function anonymous-class