Tag: 斯卡拉

编译失败:加载AnnotatedElement,ConcurrentMap,从Scala 2.10下Java 8的CharSequence时出错?

我正在使用以下内容: 斯卡拉2.10.4 Scalatra 2.2.2 sbt 0.13.0 java 1.8.0 casbah 2.7.2 scalatra-sbt 0.3.5 我经常遇到这个错误: 21:32:00.836 [qtp1687101938-55] ERROR o.fusesource.scalate.TemplateEngine – Compilation failed: error: error while loading CharSequence, class file '/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/lib/rt.jar(java/lang/CharSequence.class)' is broken (class java.lang.RuntimeException/bad constant pool tag 18 at byte 10) error: error while loading ConcurrentMap, class file '/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/lib/rt.jar(java/util/concurrent/ConcurrentMap.class)' is broken (class java.lang.RuntimeException/bad constant pool tag 18 […]

斯卡拉所有的例子?

我尝试谷歌search,找不到一个像样的例子。 它有什么作用? 为什么需要一个布尔函数? 请给我一个参考(斯卡拉多克除外)。

我如何排除/重命名从斯卡拉导入一些类?

语言FAQ说 import scala.collection.mutable.{_, Map => _, Set => _} 应该从包scala.collection.mutable导入所有的类, Map和Set除外。 但它给了我这个错误: error: '}' expected but ',' found. import scala.collection.mutable.{_, Map => _, Set => _} 还有办法做到这一点?

斯卡拉的“理解”与未来

我正在阅读Scala Cookbook( http://shop.oreilly.com/product/0636920026914.do ) 有一个与未来使用相关的例子涉及到理解。 到目前为止,我对理解的理解是,当与一个集合一起使用时,它将产生具有相同types的另一个集合。 例如,如果每个futureX都是Future[Int]types,则以下也应该是Future[Int]types: for { r1 <- future1 r2 <- future2 r3 <- future3 } yield (r1+r2+r3) 有人能解释一下,当在这个代码中使用<-时发生了什么? 我知道如果它是一个生成器,它会通过循环来获取每个元素。

计算机科学中的“reason about”是什么意思?

在学习函数式编程的同时,我还会遇到“纯粹的理由”一词,特别是在纯函数和/或参照透明性的背景下。 有人可以解释这到底是什么意思?

为什么foreach比获得Scala选项更好?

为什么使用foreach , map , flatMap等被认为比使用scala选项更好? 如果我使用isEmpty我可以安全地调用get

为什么斯卡拉的types推理没有Haskell那么强大?

Haskell的types推断引擎比Scala更强大。 在Haskell中,我很less需要明确地写出types,而在Scala中,types只能在expression式中推断,而在方法定义中则不能。 例如,请参阅以下Haskell代码片段: size xs = loop xs 0 where loop [] acc = acc loop (_ : xs) acc = loop xs (acc+1) 它返回一个List的大小。 Haskell编译器可以识别使用什么types以及函数定义是什么。 等效的Scala代码: def size[A]: List[A] => Int = xs => { def loop: (List[A], Int) => Int = { case (Nil, acc) => acc case (_ :: xs, acc) => […]

如何检查path或文件是否存在于Scala中

如何检查Scala中是否存在与Python相似的path/文件? 下面是一个例子: os.path.exists("/home") Out[4]: True

如何find一个Scalastring是否可parsing为Double或不?

假设我在scala中有一个string,我想试图parsing一个双精度。 我知道,我可以调用toDouble ,然后捕获Java的NUM格式exception,如果失败,但有没有更干净的方法来做到这一点? 例如,如果有一个返回Option[Double]的parseDouble函数,这将有资格。 我不想把它放在我自己的代码中,如果它已经存在于标准库中,我只是在错误的地方寻找它。 感谢您的任何帮助,您可以提供。

Scala中的dynamic混合 – 有可能吗?

我想要实现的是正确的实现 def dynamix[A, B](a: A): A with B 我可能知道B是什么,但不知道A是什么(但是如果B有一个自我types,那么我可以在A上添加一些约束)。 scala编译器对上面的签名很满意,但是我还不知道如何实现这个实现。 我想到的一些select: 使用reflection/dynamic代理。 最简单的情况:A是Java级别的接口+我可以实例化B,它没有自己的types。 我想这不会太难(除非遇到一些令人讨厌的意外问题): 创build一个新的B(b),同时也是一个实现A和B的代理,并使用调用处理程序委托给a或b。 如果B不能实例化,我仍然可以创build它的一个子类,并按照上面的描述进行操作。 如果它也有一个自我types,我可能会需要一些代表团,但它可能仍然有效。 但是,如果A是一个具体的types,我不能find一个适当的接口? 我会遇到更多的问题(例如与线性化有关的东西,还是有助于Java互操作性的特殊结构)? 使用一种包装而不是一个mixin并返回B [A],a可以从b访问。 不幸的是,在这种情况下,调用者需要知道如何完成嵌套,如果混入/包装多次完成(D [C [B [A]]),这可能是相当不方便的,因为它需要find正确的嵌套级别来访问所需的function,所以我不认为这是一个解决scheme。 实现一个编译器插件。 我没有经验,但我的直觉是,这不是微不足道的。 我认为凯文·赖特的autoproxy插件有一个类似的目标,但这还不足以解决我的问题(还没有?)。 你有任何其他想法可能工作? 你会推荐哪种方式? 期待什么样的“挑战”? 或者我应该忘记它,因为目前的Scala约束是不可能的? 我的问题背后的意图:说我有一个业务工作stream程,但不是太严格。 有些步骤有固定的顺序,但其他步骤没有,但最后所有的步骤都必须完成(或其中一些需要进一步处理)。 更具体的例子:我有一个A,我可以添加B和C到它。 我不在乎第一个做什么,但是最后我需要一个与B一起的A。 评论:我不太了解Groovy,但是这个问题突然出现了,我想这个问题或多或less和我想要的一样,至less是概念上的。