问题标签 [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.
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(我猜屏幕截图证明他们确实测试了这个版本!)。现在一切正常!!!
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
scala - 为什么scala 2.8 REPL不会自动完成某些方法(即forall,存在)?
我启动了 scala REPL 并编写了以下代码:
Why I don't have "exists" listed when I press <TAB>?
scala - Scala 为在 JVM 上运行做出了哪些妥协?
Scala 是一门很棒的语言,但我想知道如果它有自己的运行时如何改进?
即,由于 JVM 的选择而做出了哪些设计选择?
scala - Scala 将隐式转换优先于“自然”操作......为什么?这是一个错误吗?还是我做错了什么?
当然,这个简单的测试按预期工作:
现在我将其纳入范围:
我正在定义一个新类和一个 += 操作,以及当我想将 Int 添加到 A 的 Int 值时的方便隐式转换。
当“A”类根本不是表达式的一部分时,我从没想过这会影响我的常规 Int 操作的行为方式。
但它确实:
这里似乎发生的是 b:Int 被隐式转换为“A”,它没有绑定到任何变量,然后 += 被调用,丢弃结果。
Scala 似乎将隐式转换优先于已经定义给 Ints 的自然 += 行为(编译器魔术,而不是实际方法)。常识和 C++ 背景告诉我,只有在编译会失败的情况下,才应在不得已的情况下调用隐式函数。这导致了几个问题......
- 为什么?这是一个错误吗?是设计使然吗?
- 是否有解决方法(除了不为我的 DSL 的“+=”操作使用“+=”)?
谢谢
scala - Scala 2.8 TreeMap 和自定义排序
我正在从 scala 2.7 切换并订购到 scala 2.8 并使用订购。它看起来很简单,但我想知道我能否让它不那么冗长。例如:
如果我随后尝试创建 TreeMap,则会收到错误消息
但是,如果我将对象 A 明确指定为排序,则它可以正常工作。
我总是必须明确指定顺序还是有更短的格式?
谢谢
scala - Scala数组构造函数?
为什么这两个表达式有不同的语义?
programming-languages - Scala“延续”只是定义和使用回调函数的一种时髦语法吗?
我的意思是,在同样的意义上,C/Javafor
只是while
循环的一种时髦语法。
我还记得第一次学习for
C 中的循环时,为了理解三个控制表达式相对于循环语句的执行顺序而付出的心血。在我看来,必须付出同样的努力来理解 Continuations(在 Scala 中,我猜可能是其他语言)。
然后有一个明显的后续问题......如果是这样,那有什么意义呢?似乎很多痛苦(语言复杂性、程序员错误、不可读的程序等)都没有收获。
scala - 如何在 Scala 中定义保留前导标记的三元运算符?
我正在编写一个生成 Scala 输出的代码生成器。
我需要以这样的方式模拟三元运算符,即通向“?”的标记 保持不变。
例如将表达式转换c ? p : q
为c something
. 简单if(c) p else q
不符合我的标准,因为它需要放在if(
之前c
。
我的第一次尝试(仍然使用上面的 c/p/q)是
我发现的另一个选择是:
这让我可以写:
我喜欢第二个选项的整体外观,但有没有办法让它不那么冗长?
谢谢
scala - 为什么这个隐式参数的 Scala 示例不起作用?
简单的 REPL 测试...
为什么这些尝试的用法都不起作用?
1.
2.
谢谢