如何在Scala中使用行号跟踪表达式/打印语句?

如何在Scala中使用行号跟踪表达式/打印语句?,scala,debugging,stack-trace,trace,Scala,Debugging,Stack Trace,Trace,如果你想打印带有行号的语句,你怎么做?这取决于你想做什么 使用库,您可以键入如下内容: Debug.trace(1 + 2) 得到这个: "3" in thread main: path.to.file(file.Scala: 22) // click-able stack trace 您可以自定义堆栈跟踪的行数,如下所示: Debug.trace(1 + 2, 3) // 3 lines of stack trace 如果您执行info.collaboration\u stati

如果你想打印带有行号的语句,你怎么做?

这取决于你想做什么

使用库,您可以键入如下内容:

Debug.trace(1 + 2)
得到这个:

"3" in thread main:
    path.to.file(file.Scala: 22) // click-able stack trace
您可以自定义堆栈跟踪的行数,如下所示:

Debug.trace(1 + 2, 3) // 3 lines of stack trace
如果您执行
info.collaboration\u station.debug.\u
,您甚至可以执行以下操作:

val three = 3.trace

最后,还有对表达式的支持:

Debug.traceExpression{
    val myVal = 4
    1 + 2 + myVal
}


与其他库不同,它更倾向于调试。如果我想提供正在发生的事情的历史记录,并且我不想让用户看到堆栈跟踪,我不会使用此工具。

这取决于您想做什么

使用库,您可以键入如下内容:

Debug.trace(1 + 2)
得到这个:

"3" in thread main:
    path.to.file(file.Scala: 22) // click-able stack trace
您可以自定义堆栈跟踪的行数,如下所示:

Debug.trace(1 + 2, 3) // 3 lines of stack trace
如果您执行
info.collaboration\u station.debug.\u
,您甚至可以执行以下操作:

val three = 3.trace

最后,还有对表达式的支持:

Debug.traceExpression{
    val myVal = 4
    1 + 2 + myVal
}

与其他库不同,它更倾向于调试。如果我想提供正在发生的事情的历史记录,并且我不想让用户看到堆栈跟踪,我就不会使用此工具。

请查看李浩一的库,我认为它提供了您要查找的内容

sourcecode是一个小型的Scala库,用于提供通用的“源代码” 运行时将“代码”上下文添加到程序中,类似于Python __名称、C++的行或Ruby的文件。例如,你可以 询问当前文件的文件名和行号 通过()语法或通过隐式

例如,见

您可以使用sourcecode.File和sourcecode.Line来定义日志 自动捕获行号和文件名的函数

去李浩一的图书馆看看,我想它能给你你想要的东西

sourcecode是一个小型的Scala库,用于提供通用的“源代码” 运行时将“代码”上下文添加到程序中,类似于Python __名称、C++的行或Ruby的文件。例如,你可以 询问当前文件的文件名和行号 通过()语法或通过隐式

例如,见

您可以使用sourcecode.File和sourcecode.Line来定义日志 自动捕获行号和文件名的函数