Tag: 斯卡拉2.8

如何从Scala中的数组中select一个随机元素?

例如,有一个Scala数组, val A = Array("please", "help", "me") 。 如何从这个数组中select一个随机元素?

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

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

我怎样才能将immutable.Map转换为Scala中的mutable.Map?

我怎样才能转换immutable.Map在斯卡拉mutable.Map,所以我可以更新在Map中的值?

包对象

什么是包对象,不是这个概念,而是它们的用法? 我试图得到一个工作的例子,我得到的唯一的工作如下: package object investigations { val PackageObjectVal = "A package object val" } package investigations { object PackageObjectTest { def main(args: Array[String]) { println("Referencing a package object val: " + PackageObjectVal) } } } 我到目前为止的观察结果是: package object _root_ { … } 是不允许的(这是合理的), package object xy { … } 也被禁止。 看来,一个包对象必须在直接父包中声明,如果按照上面的方式写,则需要用括号分隔的包声明表单。 他们是共同使用? 如果是这样,怎么样?

什么是Scala的延续,为什么使用它们?

我刚刚完成了Scala编程 ,我正在研究Scala 2.7和2.8之间的变化。 看起来最重要的是continuation插件,但是我不明白它对于它的作用有多大用处。 我已经看到,这对于asynchronousI / O非常有用,但我一直无法找出原因。 这方面一些比较受欢迎的资源是: 划定延续和斯卡拉 转到斯卡拉 2.8的味道:延续 定界延续解释(在斯卡拉) 而这个问题堆栈溢出: Scala 2.8和Scala 2.7最大的区别是什么? 不幸的是,这些参考文献都没有试图定义什么延续或者什么是移位/重置function,我还没有find任何参考。 我还没有猜到链接文章中的任何例子是如何工作的(或者他们做了什么),所以帮助我的一种方法可能是通过其中一个样本逐行进行。 即使是第三篇文章中的这个简单的一个: reset { … shift { k: (Int=>Int) => // The continuation k will be the '_ + 1' below. k(7) } + 1 } // Result: 8 为什么是结果8? 这可能会帮助我开始。

斯卡拉2.8collections图书馆是“历史上最长的遗书”吗?

我刚开始着眼于即将发布的2.8版本中的Scala集合库重新实现 。 熟悉2.7版库的人会注意到,从使用的angular度来看,图书馆的变化不大。 例如… > List("Paris", "London").map(_.length) res0: List[Int] List(5, 6) …可以在任一版本中工作。 图书馆是非常有用的 :实际上它太棒了。 但是,那些以前不熟悉Scala的人为了感受这个语言,现在需要弄清楚方法签名,比如: def map[B, That](f: A => B)(implicit bf: CanBuildFrom[Repr, B, That]): That 对于这样简单的function,这是一个令人生畏的签名,我发现自己正在努力去理解。 我不认为Scala有可能成为下一个Java (或者C / C ++ / C#) – 我不认为它的创build者正在瞄准这个市场 – 但是我认为Scala是可行的下一个Ruby或Python(即获得重要的商业用户群) 这是否会让人们到斯卡拉? 这是否会给斯卡拉在商业世界作为一个学术玩具 ,只有专门的博士生才能理解一个坏名字? 首席技术官和软件负责人会被吓跑吗? 图书馆是否重新devise了一个明智的主意? 如果您在商业上使用Scala,您是否担心这一点? 你打算立即采用2.8还是等待看看会发生什么? 史蒂夫·叶格 ( Steve Yegge) 曾经 (我认为)错误地将斯卡拉 ( Scala )视为过度复杂的types系统。 我担心有人会用这个API传播FUD […]

什么是Scala中的“上下文绑定”?

Scala 2.8的新特性之一是上下文边界。 什么是上下文绑定,它在哪里有用? 当然,我首先search(例如发现这个 ),但我找不到任何清晰和详细的信息。

在Scala 2.8中,<:<,<%<和= =是什么意思?

我可以在Predef的API文档中看到它们是generics函数types(From)=> To的子类,但就是这么说。 呃,什么? 也许在某处有文档,但是search引擎不能像“<:<”那样处理“名称”,所以我一直无法find它。 后续问题:我应该什么时候使用这些时髦的符号/类,为什么?

斯卡拉2.8 breakOut

在Scala 2.8中 , scala.collection.package.scala有一个对象: def breakOut[From, T, To](implicit b : CanBuildFrom[Nothing, T, To]) = new CanBuildFrom[From, T, To] { def apply(from: From) = b.apply() ; def apply() = b.apply() } 我被告知这导致: > import scala.collection.breakOut > val map : Map[Int,String] = List("London", "Paris").map(x => (x.length, x))(breakOut) map: Map[Int,String] = Map(6 -> London, 5 -> Paris) 这里发生了什么? […]