Tag: 斯卡拉

折叠和foldLeft或foldRight之间的区别?

注:我在Scala 2.8-可以是一个问题? 为什么我不能像foldLeft或foldRight一样使用fold函数? 在设置scaladoc它说: 折叠的结果可能只是这个并行集合的types参数T的超types。 但是我在函数签名中看不到types参数T : def fold [A1 >: A] (z: A1)(op: (A1, A1) ⇒ A1): A1 foldLeft-Right和fold之间有什么区别,我如何使用后者? 编辑:例如,我将如何写一个折叠来添加列表中的所有元素? 随着foldLeft这将是: val foo = List(1, 2, 3) foo.foldLeft(0)(_ + _) // now try fold: foo.fold(0)(_ + _) >:7: error: value fold is not a member of List[Int] foo.fold(0)(_ + _) ^

冒号的SiteMap中的冒号,下划线和星号的含义是什么(条目:_ *)?

我正在学习Scala,同时解除了对Boot.scala中初始化SiteMap的语法的理解: val entries = Menu(Loc("Home", "/", "Home")) :: Menu(Loc("Foo", "/badger", "Foo")) :: Menu(Loc("Directory Foo", "/something/foo", "Directory Foo")) :: Nil LiftRules.setSiteMap(SiteMap(entries:_*)) SiteMap参数的意义究竟是什么? 我看到值条目是菜单的列表。 什么是冒号,下划线,星号 ? 起初我以为这是一个名单上的方法,但我无法find这样的定义…

斯卡拉repl抛出错误

当我在terminal上键入scala来启动repl时,会抛出这个错误 scala> [init] error: error while loading AnnotatedElement, class file '/usr/lib/jvm/java-8-oracle/jre/lib/rt.jar (java/lang/reflect/AnnotatedElement.class)' is broken (bad constant pool tag 15 at byte 2713) 当我println("hello, world")并inputprintln("hello, world") ,它再次抛出这个 error: error while loading CharSequence, class file '/usr/lib/jvm/java-8-oracle/jre/lib/rt.jar (java/lang/CharSequence.class)' is broken (bad constant pool tag 15 at byte 1501) 我正在使用Ubuntu 14.04和java -version java version "1.8.0_05" Java(TM) SE Runtime Environment […]

将可变映射转换为不可变映射

private[this]object MMMap extends HashMap[A, Set[B]] with MultiMap[A, B] 如何将其转换为不可变的?

在Scala中重载特性和抽象方法

我有一个基本的抽象类(特质)。 它有一个抽象方法foo() 。 它由几个派生类扩展和实现。 我想创build一个可以混合到派生类中的特征,以便它实现foo() ,然后调用派生类的foo() 。 就像是: trait Foo { def foo() } trait M extends Foo { override def foo() { println("M") super.foo() } } class FooImpl1 extends Foo { override def foo() { println("Impl") } } class FooImpl2 extends FooImpl1 with M 我尝试了自我types和结构types,但是我无法得到它的工作。

我如何在Scala模式匹配数组?

我的方法定义如下所示 def processLine(tokens: Array[String]) = tokens match { // … 假设我想知道第二个string是否为空 case "" == tokens(1) => println("empty") 不编译。 我怎么去做这个?

Scala:将string转换为布尔值

在Java中,您可以编写Boolean.valueOf(myString) 。 然而在Scala中, java.lang.Boolean被scala.Boolean隐藏,它缺less这个function。 切换到使用原始Java版本的布尔值是很容易的,但这看起来不正确。 那么Scala中的单行,规范解决scheme是如何从string中提取true的?

Scala特性与Java 8接口之间有什么区别和相似之处?

我是新来的斯卡拉开始学习语言的乐趣,我仍然试图让我的头。 我对Scala特性的理解是它们就像java接口,除了一些方法可以有一个实现。 Java 8添加了可以提供实现的默认方法的接口。 Java 8接口和Scala特性有什么相似之处和不同点?

如何在SBT 0.13项目中设置主类

可否请你向我解释如何在SBT项目中设置主类? 我正在尝试使用版本0.13。 我的目录结构非常简单(不像SBT的文档)。 在根文件夹中,我有以下内容build.sbt name := "sbt_test" version := "1.0" scalaVersion := "2.10.1-local" autoScalaLibrary := false scalaHome := Some(file("/Program Files (x86)/scala/")) mainClass := Some("Hi") libraryDependencies ++= Seq( "org.scalatest" % "scalatest_2.10" % "2.0.M5b" % "test" ) EclipseKeys.withSource := true 我有包含以下代码的单个文件Hi.scala子文件夹project object Hi { def main(args: Array[String]) = println("Hi!") } 我可以通过调用sbt compile来编译它,但是sbt run返回 The system cannot find […]

用filter代替filter

在使用filter,flatmap等函数的时候,使用Filter来代替filter,总是更高效的吗? 为什么只支持map,flatmap和foreach? (像forall /期望的function也存在)