gpt4 book ai didi

scala - 用Scala编写脚本: How to launch an uncompiled script?

转载 作者:行者123 更新时间:2023-12-04 05:13:02 25 4
gpt4 key购买 nike

除了严重的性能问题外,Scala是一种非常强大的语言。因此,我现在经常将其用于Bash中的脚本任务。有没有一种方法可以完全像我对Python文件那样执行* .scala文件?据我所知,Python使用字节码执行程序,就像JVM一样。但是,没有任何需要称为pythonc的东西(例如scalac或javac)才能实现。因此,我希望Scala能够以类似的方式行动。

最佳答案

我不使用python,但是在Scala中,我能做的最脚本化的事情是:

thinkpux:~/proj/mini/forum > echo 'println(" 3 + 4 = " + (3 + 4))' | scala 
Welcome to Scala version 2.10.2 (Java HotSpot(TM) Server VM, Java 1.7.0_09).
Type in expressions to have them evaluated.
Type :help for more information.

scala> println(" 3 + 4 = " + (3 + 4))
3 + 4 = 7

scala> thinkpux:~/proj/mini/forum >

但是,此后,我并没有获得视觉反馈,因此我必须称其为“透明”。

但是编写脚本并执行它没有问题:
thinkpux:~/proj/mini/forum > echo 'println(" 3 + 4 = " + (3 + 4))' > print7.scala 
thinkpux:~/proj/mini/forum > scala print7.scala
3 + 4 = 7

这样, shell 就没有问题了。

对于封闭的类,将不执行代码:
thinkpux:~/proj/mini/forum > echo -e 'class Foo {\nprintln(" 3 + 4 = " + (3 + 4))\n}\n'
class Foo {
println(" 3 + 4 = " + (3 + 4))
}

thinkpux:~/proj/mini/forum > scala Foo.scala
thinkpux:~/proj/mini/forum > cat Foo.scala
class Foo {
println(" 3 + 4 = " + (3 + 4))
}

但是通过实例化一个类,您可以在其中执行代码,而无需使用众所周知的(希望如此)“main”方式:
thinkpux:~/proj/mini/forum > echo -e 'class Foo {\nprintln(" 3 + 4 = " + (3 + 4))\n}\nval foo = new Foo()'  > Foo.scala
thinkpux:~/proj/mini/forum > cat Foo.scala
class Foo {
println(" 3 + 4 = " + (3 + 4))
}
val foo = new Foo()
thinkpux:~/proj/mini/forum > scala Foo.scala
3 + 4 = 7

关于scala - 用Scala编写脚本: How to launch an uncompiled script?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17756775/

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