gpt4 book ai didi

scala - 如何在不执行脚本和生成任何类文件的情况下检查 Scala 脚本的语法?

转载 作者:行者123 更新时间:2023-12-04 01:37:13 28 4
gpt4 key购买 nike

可以在 Scala 中编写脚本。所以你可以把它放到 Hello.scala 中

#!/bin/sh
exec scala $0 $@
!#

println("You supplied " + args.length + " arguments!")

并使其在 Unix 中可执行
chmod u+x Hello.scala

然后你可以简单地运行脚本
./Hello.scala

如果没有语法错误,这将编译脚本并运行它。但是,这并没有考虑到我只想检查语法 的情况。没有 执行脚本。我不想修改脚本(即通过删除 #! 指令)并且我不想生成任何 *.class 文件。

如何检查 Scala 脚本的语法?

最佳答案

我希望您实际上想要的不仅仅是检查正确的语法……大概您想知道的是,如果您确实编译了文件,它会正确编译。这涉及类型检查以及语法检查。

对于 Scala 源文件(即非脚本),您可以指定 -Ystop:refchecks 命令行参数以导致编译器在开始代码生成之前停止(如果您真的只对语法正确性感兴趣,则可以指定 -Ystop:parser) .如果有错误,它们会以与完全编译源代码完全相同的方式显示在控制台上。

对于 Scala 脚本,您还可以指定 -Ystop:refchecks 参数。如果您这样做,那么您将在控制台上看到编译错误报告,或者,如果脚本中没有错误,您将看到以下内容,

$ scala -Ystop:refchecks Hello.scala 
java.lang.ClassNotFoundException: Main

ClassNotFoundException 表示没有生成类文件并且您的脚本没有被执行。

关于scala - 如何在不执行脚本和生成任何类文件的情况下检查 Scala 脚本的语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5204864/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com