scala - 如何使包可用于 Scala REPL?

标签 scala read-eval-print-loop

我正在尝试熟悉 Scala。我正在使用 macOS。

我已经使用 brew install scala 安装了 scala,这很简单,完成后我可以通过发出 scala 来简单地启动 scala REPL,我在scala>提示符。
我现在想导入一些包,所以我尝试:

import org.apache.spark.sql.Column

毫不奇怪,它失败了

error: object apache is not a member of package org

这是有道理的,它怎么知道从哪里得到那个包裹呢?问题是,我不知道我需要做什么才能使该软件包可用。有什么我可以从命令行执行的操作,允许我import org.apache.spark.sql.Column

我在谷歌上搜索了一下,但没有找到任何可以通俗易懂的方式解释的内容。在这里完成 Scala noob 以便没有行话的响应将不胜感激。

最佳答案

这里有两种启动 REPL 的方法,我知道有依赖关系:

  1. 使用 SBT 管理依赖项,使用 console 启动具有这些依赖项的 REPL
  2. 使用 Ammonite REPL

你可以用 build.sbt 在你设置的地方创建一个单独的目录

scalaVersion := "2.11.12"

然后复制

libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.3.0"

来自 MavenCentral 的片段。然后你可以使用 sbt console 运行 REPL。请注意,这将创建一个 projecttarget 子目录,因此它会“留下痕迹”,您不能像独立的 scala 那样使用它-回复您也可以省略 build.sbt,并通过将它们键入 SBT-shell 本身来添加库依赖项。

或者你可以只使用 Ammonite REPL正是为此目的而创建的。

关于scala - 如何使包可用于 Scala REPL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50229960/

相关文章:

scala - 为什么 Scala 有这么多 Collection View 类型?

java - Pointer[Float] 类型的表达式不符合 Scala 中预期的 Pointer[Float] 类型

scala - 当运行“.scala”程序时,Scala运行时/REPL背后到底发生了什么?

Scala BitSet 和移位操作

scala - 如何从不同的模块 "include"Thrift 文件?

linux - 加载 CharSequence 时出错(scala 2.11.4)

vim - 如何从 Clojure REPL 评估读取器条件

debugging - Clojure, Quil : Creating/debugging generic functions

java - 是否有某种 Java REPL/shell 可以用来快速测试类文件?

scala - 或 Else 如何处理偏函数