如何在 sbt 控制台中加载 scala 文件? [复制]

2024-05-16

可能的重复:
将 Scala 文件加载到解释器中以使用函数? https://stackoverflow.com/questions/7383436/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

并输出函数的值?


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

将其包裹在一个object to get sbt才能正确编译它。

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

加载文件:

 scala> :load Times.scala
 Loading Times.scala...
 defined module Times

然后打电话timesTwo in Times:

 scala> Times.timesTwo(2)
 hello world
 res0: Int = 4

如果您只想要函数定义而不将其包装在class or 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 sbt 控制台中加载 scala 文件? [复制] 的相关文章

随机推荐

  • 如何从 GestureListener.Gesture 触发 EventToCommand

    有人使用 Toolkit GestureListener 来触发 EventToCommand 吗 我认为您无法使用 EventToCommand 行为来做到这一点 但我创建了一种行为 允许通过将 GestureListener 绑定到命令
  • 基于另一个组合框的所选项目绑定组合框 - MVVM WPF

    我目前有一个组合框 其中填充了艺术家姓名 一旦选择了艺术家 我需要将其绑定到另一个组合框 在我看来 这些设置如下
  • Reddit API 返回无用的 JSON

    我正在尝试使用 Reddit 的 API 和 Python 的 urllib2 从 Reddit 抓取新故事 但我不断收到如下 JSON 文档 u kind u Listing u data u modhash u u children u
  • 如何使用 PHP 从内容中查找 URL?

    需要一个简单的 preg match 它将在内容中查找 c aspx 不带引号 如果找到 它将返回整个 url 举个例子 content div 4 a href m c aspx mt 01 9310ba801f1255e02e411d8
  • 选择您要显示的数据系列

    我有一个包含多个数据系列的图 我希望能够选择我想要显示的系列 例如 只有0 and 20 那些 有没有一种简单的方法可以通过操作图表而不使用JCheckBox 例如 我希望能够通过单击该系列的图例来做到这一点 如图所示here https
  • HTTP Header Key 可以重复吗?

    在 JAVA HttpUrlConnection 中 请求 Header 设置的主要逻辑代码如下 public synchronized void set String k String v for int i nkeys i gt 0 i
  • 使用“评估”功能。为什么它不起作用?

    这段代码 evaluate def test println Test is successful test 结果异常 致命 没有方法签名 script1409644336796288198097 test 适用于参数类型 值 可能的解决方
  • 设置已运行的 selenium webdriver 的功能

    在硒测试步骤 如单击按钮 中 我想防止硒等待页面完成加载 我无法抛出加载异常 因为那样我就无法再使用该页面了 可以做类似的事情 如下所示 DesiredCapabilities dr DesiredCapabilities chrome d
  • 与 960.gs 的列高度相同吗?

    我有一排 4 列 根据我在每一列中放入的信息量 它们将具有不同的高度 如果你给它们加上背景颜色你就可以看到 我如何给其他列最大高度的列的高度 您可以使用 jQuery 来执行此操作 http www cssnewbie com equal
  • Rubymine 6 更新/刷新 Rails 项目中可用的方法和路径?

    这是一个例子 假设我更新路线resources foo这给我带来了一些新的道路 例如 new foo session当我开始在 ERB 视图中输入路径时 我希望它向我显示 建议自动完成与路径匹配的名称 当我输入 new foo 我会得到所有
  • 目前最流行的 Ruby on Rails AUTHORIZATION gem/plugin 是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Apache POI 锁定标头行

    有人熟悉在使用 Apache POI 3 7 创建的电子表格中锁定行的方法吗 通过锁定 我的意思是当用户滚动行时 我希望列的标题行保持可见 我创建的电子表格将有 500 行 如果列的名称始终可见 那将是有益的 如果您需要冻结工作表中任何位置
  • React Native 崩溃报告的良好设置是什么? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我看到 getSentry 现在有 React Native 的崩溃报告 https docs getsentry com hoste
  • Visual Studio 2012 本机 C++ DLL x86 编译

    我最近将我的工具集从 Win 7 x86 Visual Studio 2010 升级到 Win 8 x64 Visual Studio 2012 但是 现在我的本机 C dll 编译为 x64 而不是 x86 除了将代码移至新操作系统并将其
  • 测试在本地通过,但在 CI 中未通过 - cypress

    我有这个代码 div class input group div
  • 修复数据库需要多少额外空间

    我已经问过了这个问题在 mongodb google group https groups google com d topic mongodb user oi6S LKfTrs discussion 在没有任何回复的情况下将其发布在这里
  • UITesting、XCTest 当前 ViewController 类

    简单的问题 我有一个按钮可以执行到下一个视图控制器的操作 我想写 UI XCTest 来告诉我它是否打开了我想要的视图控制器 UI 测试框架无法访问您的应用程序代码 这使得无法对实例进行类断言 你不能够directly告诉屏幕上的控制器的类
  • 在 SQL Server 2005 IMAGE 列中存储 20 Meg 文件的最有效方法

    我们将文档存储在 SQL Server 2005 数据库表中 列格式为 Image 每次我尝试存储大于 1 Meg 的 PDF 文件时 它都会以某种方式损坏 NET 中是否有任何特别有效的方法来序列化大文件 10megs 并将其存储到数据库
  • 适用于 C/C++ 和 Java 的 Eclipse IDE

    我正在尝试在运行 El Capitan 的 Mac 上设置 Java IDE 但是我找到的安装程序要求我为 C C 和 Java 安装单独的 IDE Eclipse Neon Eclipse 有什么选项可以让我拥有一个支持多种语言的 IDE
  • 如何在 sbt 控制台中加载 scala 文件? [复制]

    这个问题在这里已经有答案了 可能的重复 将 Scala 文件加载到解释器中以使用函数 https stackoverflow com questions 7383436 load scala file into interpreter to