问题标签 [scala-2.8]

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 投票
9 回答
32829 浏览

scala - 如何在 IntelliJ IDEA 中使用 Scala(或者:为什么很难为 Scala 获得一个工作的 IDE)?

我最近放弃了尝试在 Eclipse 中使用 Scala(完成之类的基本内容不起作用)。所以现在我正在尝试 IntelliJ。我不会走得很远。

我已经能够编辑程序(在语法突出显示和完成中......耶!)。但我什至无法运行最简单的“Hello World”。这是最初的错误:

但那是昨天的 IDEA 9.0.1。见下文...

更新

今天我卸载了 IntelliJ 9.0.1,安装了 9.0.2 Early Availability,带有 Scala 插件的 4/14 稳定版。

然后我通过向导从头开始设置一个项目:

  • 从头开始的新项目
  • JDK 是 1.6.u20
  • 接受默认(项目)而不是全局/模块
  • 接受将 Scala 2.8.0beta1 下载到项目的 lib 文件夹中

创建了一个新类:

为了我的努力,我现在有一个全新的错误:)

这里是:

Scalac 内部错误:类 java.lang.ClassNotFoundException [java.net.URLClassLoader$1.run(URLClassLoader.java:202)、java.security.AccessController.doPrivileged(Native Method)、java.net.URLClassLoader.findClass(URLClassLoader.java :190), java.lang.ClassLoader.loadClass(ClassLoader.java:307), sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301), java.lang.ClassLoader.loadClass(ClassLoader.java:248) , java.lang.Class.forName0(Native Method), java.lang.Class.forName(Class.java:169), org.jetbrains.plugins.scala.compiler.rt.ScalacRunner.main(ScalacRunner.java:72) ]

最后更新

我卸载了 9.0.2 EA 并重新安装了 9.0.1,但这次使用的是 Scala 的 2.7.3 版本而不是默认的 2.7.6,因为 IntelliJ 网站的屏幕截图中显示的是 2.7.3(我猜屏幕截图证明他们确实测试了这个版本!)。现在一切正常!!!

0 投票
2 回答
936 浏览

scala - Simple Scala syntax - trying to define "==" operator - what am I missing?

While experimenting with some stuff on the REPL, I got to a point where I needed something like this:

Just a simple class with an "==" operator.

Why doesn't it work???

Here's the result:

This is scala 2.8 RC1.

Thanks

0 投票
1 回答
503 浏览

scala - 为什么scala 2.8 REPL不会自动完成某些方法(即forall,存在)?

我启动了 scala REPL 并编写了以下代码:

Why I don't have "exists" listed when I press <TAB>?

0 投票
3 回答
1564 浏览

scala - Scala 为在 JVM 上运行做出了哪些妥协?

Scala 是一门很棒的语言,但我想知道如果它有自己的运行时如何改进?
即,由于 JVM 的选择而做出了哪些设计选择?

0 投票
5 回答
702 浏览

scala - Scala 将隐式转换优先于“自然”操作......为什么?这是一个错误吗?还是我做错了什么?

当然,这个简单的测试按预期工作:

现在我将其纳入范围:

我正在定义一个新类和一个 += 操作,以及当我想将 Int 添加到 A 的 Int 值时的方便隐式转换。

当“A”类根本不是表达式的一部分时,我从没想过这会影响我的常规 Int 操作的行为方式。

但它确实:

这里似乎发生的是 b:Int 被隐式转换为“A”,它没有绑定到任何变量,然后 += 被调用,丢弃结果。

Scala 似乎将隐式转换优先于已经定义给 Ints 的自然 += 行为(编译器魔术,而不是实际方法)。常识和 C++ 背景告诉我,只有在编译会失败的情况下,才应在不得已的情况下调用隐式函数。这导致了几个问题......

  • 为什么?这是一个错误吗?是设计使然吗?
  • 是否有解决方法(除了不为我的 DSL 的“+=”操作使用“+=”)?

谢谢

0 投票
3 回答
9332 浏览

scala - Scala 2.8 TreeMap 和自定义排序

我正在从 scala 2.7 切换并订购到 scala 2.8 并使用订购。它看起来很简单,但我想知道我能否让它不那么冗长。例如:

如果我随后尝试创建 TreeMap,则会收到错误消息

但是,如果我将对象 A 明确指定为排序,则它可以正常工作。

我总是必须明确指定顺序还是有更短的格式?

谢谢

0 投票
2 回答
16822 浏览

scala - Scala数组构造函数?

为什么这两个表达式有不同的语义?

0 投票
1 回答
499 浏览

programming-languages - Scala“延续”只是定义和使用回调函数的一种时髦语法吗?

我的意思是,在同样的意义上,C/Javafor只是while循环的一种时髦语法。

我还记得第一次学习forC 中的循环时,为了理解三个控制表达式相对于循环语句的执行顺序而付出的心血。在我看来,必须付出同样的努力来理解 Continuations(在 Scala 中,我猜可能是其他语言)。

然后有一个明显的后续问题......如果是这样,那有什么意义呢?似乎很多痛苦(语言复杂性、程序员错误、不可读的程序等)都没有收获。

0 投票
4 回答
6294 浏览

scala - 如何在 Scala 中定义保留前导标记的三元运算符?

我正在编写一个生成 Scala 输出的代码生成器。

我需要以这样的方式模拟三元运算符,即通向“?”的标记 保持不变。

例如将表达式转换c ? p : qc something. 简单if(c) p else q不符合我的标准,因为它需要放在if(之前c

我的第一次尝试(仍然使用上面的 c/p/q)是

我发现的另一个选择是:

这让我可以写:

我喜欢第二个选项的整体外观,但有没有办法让它不那么冗长?

谢谢

0 投票
2 回答
1700 浏览

scala - 为什么这个隐式参数的 Scala 示例不起作用?

简单的 REPL 测试...

为什么这些尝试的用法都不起作用?

1.

2.

谢谢