gpt4 book ai didi

scala - 如何在 sbt 控制台中加载 scala 文件?

转载 作者:行者123 更新时间:2023-12-04 01:52:06 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




9年前关闭。




Possible Duplicate:
Load Scala file into interpreter to use functions?



我像这样启动 sbt 控制台:
alex@alex-K43U:~/projects$ sbt console
[info] Set current project to default-8aceda (in build file:/home/alex/projects/)
[info] Starting scala interpreter...
[info]
Welcome to Scala version 2.9.2 (OpenJDK Client VM, Java 1.6.0_24).
Type in expressions to have them evaluated.
Type :help for more information.

scala>

我有一个 test.scala (/home/alex/projects/test.scala) 文件,内容如下:
def timesTwo(i: Int): Int = {
println("hello world")
i * 2
}

如何做到这一点,以便我可以在控制台中做这样的事情:
scala> timesTwo

并输出函数的值?

最佳答案

简而言之,使用 :load scala REPL 中的函数来加载文件。然后你可以在文件中调用该函数,如果你将它包装在一个对象或类中,因为 sbt尝试编译它。不确定是否可以仅使用函数定义来完成。

将其包裹在 object 中获取 sbt正确编译它。

object Times{
def timesTwo(i: Int): Int = {
println("hello world")
i * 2
}
}

加载文件:
 scala> :load Times.scala
Loading Times.scala...
defined module Times

然后调用 timesTwoTimes :
 scala> Times.timesTwo(2)
hello world
res0: Int = 4

如果您只需要函数定义而不将其包装在 class 中或 object您可以使用命令 :paste 粘贴它在 scala REPL/sbt 控制台中。
scala> :paste
// Entering paste mode (ctrl-D to finish)

def timesTwo(i: Int): Int = {
println("hello world")
i * 2
}

// Exiting paste mode, now interpreting.

timesTwo: (i: Int)Int

这可以通过函数名来调用。
 scala> timesTwo(2)
hello world
res1: Int = 4

关于scala - 如何在 sbt 控制台中加载 scala 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13898373/

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