问题标签 [ammonite]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
31 浏览

scala - 如何判断我是在 Ammonite repl 下运行还是在脚本中运行?

我试图使用不同的构建器来构建 SparkSession,而AmmoniteSparkSession需要 repl。

这不起作用,我认为这是因为 repl 是编译时错误。

0 投票
1 回答
106 浏览

scala - 值 YpartialUnification 不是 scala.tools.nsc.Settings 的成员

我正在尝试在 REPL 中运行 scala 猫。按照 cat 的指示,我安装了 ammonite REPL 并将以下导入predef.sc

运行时出现此错误amm

0 投票
1 回答
121 浏览

ammonite - 如何使用来自 Ammonite 脚本的资源?

我有一些菊石脚本,它们存储在一个文件夹中。该文件夹位于我的 PATH 上,因此无论身在何处,我都可以轻松调用这些脚本。

我可以在同一个文件夹中导入其他 ammonite 脚本:

但是我想“导入”一个简单的文本文件,将其内容保存为字符串并稍后使用。

我可以:

val myString = os.read(os.root/"absolute"/"path"/"to"/"the"/"file")

但出于显而易见的原因,我宁愿不使用绝对路径。相对路径不起作用,因为它是相对于我从中调用脚本的文件夹,而不是相对于脚本所在的文件夹。

有什么办法可以做到这一点?

编辑:

如果上述 bash 脚本中的功能可以在 Ammonite 中复制,则问题可以很容易地解决。

0 投票
1 回答
38 浏览

scala - 如何解释用大括号括起来的函数值(菊石问题)

阅读Scala 中大括号和圆括号之间的形式区别是什么,什么时候应该使用它们?,我仍然不知道如何理解 . 包裹的函数值{}

考虑以下两个 REPL 会话:

我有几个问题。

  1. 为什么第一个片段编译而第二个不编译?在第一个片段中,编译器知道{...}作为一个整体是一个函数值。在第二个片段中,只有(x: Int) => \n x部分是函数值(对不起\n,表示换行符)。为什么?
  2. 关于{ (x: Int) => \n ... },它什么时候被解释为函数值,什么时候不是?
  3. 花括号 ( {}) 是函数值的一部分,还是仅(...) => ...在函数值内部?如果它是它的一部分,表格是否有名称?例如,我认为(_ + _)可以称为函数值的占位符语法。

更新:这纯粹是一个菊石问题。详情见答案。

0 投票
1 回答
91 浏览

scala - 如何在控制台中与我的播放应用程序交互?

我有一个使用 scala 的 play 2.8.x 应用程序。

sbt 项目有一个 play web 项目和另一个库模块。

是否可以与 REPL 中的其他模块进行交互?我的系统上也安装了 ammonite,但不知道如何加载我的模块。我只需要构建然后在我的 /target 构建文件夹中引用该库吗?或者,还有更好的方法?

我可以自己在 sbt 中执行此操作还是 ammonite 是唯一的方法?

0 投票
1 回答
452 浏览

windows - 有没有办法在 Windows 8.1 中安装 Scala Ammonite-REPL

我正在寻找如何安装Scala Ammonite-REPLWindows 8.1但我没有在网上找到任何东西。

有人知道与此相关的事情吗?

有没有办法做到这一点?

0 投票
0 回答
130 浏览

scala - 如何将 GitHub Packages 解析器添加到 Ammonite 脚本?

有谁知道如何将 GitHub Packages 解析器添加到 Ammonite 脚本?

我很习惯将 GitHub Packages 与 sbt 一起使用,但我们使用sbt-github-packages插件,这使得将 GitHub Packages 解析器添加到 build.sbt 文件变得非常容易。例如,在 build.sbt 中,我只包括:

由于我不能将sbt-github-packages插件与 Ammonite 一起使用,因此我确信 Ammonite 的答案要复杂得多。

使用该sbt-github-packages插件进行身份验证时,我将我的 GitHub 令牌放在名为 GITHUB_TOKEN 的环境变量中,并且 Ammonite 解决方案还必须执行正确的身份验证。

0 投票
0 回答
110 浏览

scala - 反序列化 Scala 对象时出现 java.lang.ClassCastException

所以我有一个像这样的对象

我需要序列化反序列化。对于序列化,我有这个隐式类

它像

然后对于反序列化,我有这个可以由同伴类扩展的特征。

你会这样使用它

然后你应该能够QueryResult像这样从字节数组重建一个实例

问题是这有时会导致如下错误

现在,当我说有时我的意思是当我将代码组装到一个 jar 中并使用javacli 运行它时,反序列化会起作用,但是当我尝试通过 、 或 执行该代码时它sbt testsbt console中断ammonite。知道为什么它在这些情况下会中断以及可能的修复建议吗?

0 投票
1 回答
235 浏览

scala - 在 Ammonite (scala) 中重新导入脚本

我可以使用import $file.MyScript, MyScript._. 它第一次运行良好,但如果我想导入更新版本MyScript.sc怎么办?

文档建议做

它初始化 REPL,允许我再次导入脚本。听起来不错,但是,java.lang.NoClassDefFoundError当我再次导入脚本时,我会得到一个 - 请参阅下面的示例会话。

repl.sess.load()这里可能不是正确的功能,但是我如何在更新后重新导入脚本?

我知道有一个功能可以在使用带--watch参数的 Ammonite 脚本进行更改后重新运行脚本,但这不是使用 REPL,所以这不是一个好的解决方法。

示例会话

0 投票
0 回答
15 浏览

java - 如何打印到 Kojo IDE 输出窗格中的同一行?

在 Java 和 Scala 控制台中,以下代码有效:

在 Scala 的增压弟弟,菊石壳中,也毫不奇怪:

编译和运行的同一行代码在 Kojo 中不起作用。字符串连接到行尾。这是一个错误,还是我错过了什么?