问题标签 [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.
scala - 如何判断我是在 Ammonite repl 下运行还是在脚本中运行?
我试图使用不同的构建器来构建 SparkSession,而AmmoniteSparkSession需要 repl。
这不起作用,我认为这是因为 repl 是编译时错误。
scala - 值 YpartialUnification 不是 scala.tools.nsc.Settings 的成员
我正在尝试在 REPL 中运行 scala 猫。按照 cat 的指示,我安装了 ammonite REPL 并将以下导入predef.sc
运行时出现此错误amm
。
ammonite - 如何使用来自 Ammonite 脚本的资源?
我有一些菊石脚本,它们存储在一个文件夹中。该文件夹位于我的 PATH 上,因此无论身在何处,我都可以轻松调用这些脚本。
我可以在同一个文件夹中导入其他 ammonite 脚本:
但是我想“导入”一个简单的文本文件,将其内容保存为字符串并稍后使用。
我可以:
val myString = os.read(os.root/"absolute"/"path"/"to"/"the"/"file")
但出于显而易见的原因,我宁愿不使用绝对路径。相对路径不起作用,因为它是相对于我从中调用脚本的文件夹,而不是相对于脚本所在的文件夹。
有什么办法可以做到这一点?
编辑:
如果上述 bash 脚本中的功能可以在 Ammonite 中复制,则问题可以很容易地解决。
scala - 如何解释用大括号括起来的函数值(菊石问题)
阅读Scala 中大括号和圆括号之间的形式区别是什么,什么时候应该使用它们?,我仍然不知道如何理解 . 包裹的函数值{}
。
考虑以下两个 REPL 会话:
我有几个问题。
- 为什么第一个片段编译而第二个不编译?在第一个片段中,编译器知道
{...}
作为一个整体是一个函数值。在第二个片段中,只有(x: Int) => \n x
部分是函数值(对不起\n
,表示换行符)。为什么? - 关于
{ (x: Int) => \n ... }
,它什么时候被解释为函数值,什么时候不是? - 花括号 (
{}
) 是函数值的一部分,还是仅(...) => ...
在函数值内部?如果它是它的一部分,表格是否有名称?例如,我认为(_ + _)
可以称为函数值的占位符语法。
更新:这纯粹是一个菊石问题。详情见答案。
scala - 如何在控制台中与我的播放应用程序交互?
我有一个使用 scala 的 play 2.8.x 应用程序。
sbt 项目有一个 play web 项目和另一个库模块。
是否可以与 REPL 中的其他模块进行交互?我的系统上也安装了 ammonite,但不知道如何加载我的模块。我只需要构建然后在我的 /target 构建文件夹中引用该库吗?或者,还有更好的方法?
我可以自己在 sbt 中执行此操作还是 ammonite 是唯一的方法?
windows - 有没有办法在 Windows 8.1 中安装 Scala Ammonite-REPL
我正在寻找如何安装Scala Ammonite-REPL
,Windows 8.1
但我没有在网上找到任何东西。
有人知道与此相关的事情吗?
有没有办法做到这一点?
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 解决方案还必须执行正确的身份验证。
scala - 反序列化 Scala 对象时出现 java.lang.ClassCastException
所以我有一个像这样的对象
我需要序列化反序列化。对于序列化,我有这个隐式类
它像
然后对于反序列化,我有这个可以由同伴类扩展的特征。
你会这样使用它
然后你应该能够QueryResult
像这样从字节数组重建一个实例
问题是这有时会导致如下错误
现在,当我说有时我的意思是当我将代码组装到一个 jar 中并使用java
cli 运行它时,反序列化会起作用,但是当我尝试通过 、 或 执行该代码时它sbt test
会sbt console
中断ammonite
。知道为什么它在这些情况下会中断以及可能的修复建议吗?
scala - 在 Ammonite (scala) 中重新导入脚本
我可以使用import $file.MyScript, MyScript._
. 它第一次运行良好,但如果我想导入更新版本MyScript.sc
怎么办?
文档建议做
它初始化 REPL,允许我再次导入脚本。听起来不错,但是,java.lang.NoClassDefFoundError
当我再次导入脚本时,我会得到一个 - 请参阅下面的示例会话。
repl.sess.load()
这里可能不是正确的功能,但是我如何在更新后重新导入脚本?
我知道有一个功能可以在使用带--watch
参数的 Ammonite 脚本进行更改后重新运行脚本,但这不是使用 REPL,所以这不是一个好的解决方法。
示例会话
java - 如何打印到 Kojo IDE 输出窗格中的同一行?
在 Java 和 Scala 控制台中,以下代码有效:
在 Scala 的增压弟弟,菊石壳中,也毫不奇怪:
编译和运行的同一行代码在 Kojo 中不起作用。字符串连接到行尾。这是一个错误,还是我错过了什么?