16得票2回答
Scala:匹配可选的正则表达式组

我正在尝试使用以下代码在 Scala 2.8(beta 1)中匹配选项组:import scala.xml._ val StatementPattern = """([\w\.]+)\s*:\s*([+-])?(\d+)""".r def buildProperty(input: Stri...

16得票1回答
无法找到元素类型为T的类清单。

我试图编译来自这个SO问题的一些代码,但遇到了这个错误信息:无法找到T元素的清单类。这里有另一个片段展示了这种行为: scala> def f[T](a:T, b:T):Array[T] = { new Array[T](2) } <console>:4: error: c...

16得票2回答
15得票4回答
如何使用谓词从Scala可变映射中正确删除元素

如何在不创建任何新集合的情况下完成这个操作?有没有更好的方法? val m = scala.collection.mutable.Map[String, Long]("1" -> 1, "2" -> 2, "3" -> 3, "4" -> 4) m.foreach(t...

15得票3回答
用Scala编写的最小集合框架,具有继承返回类型。

假设想要构建一个新的泛型类 Novel[A]。这个类将包含许多有用的方法,也许它是一种集合类型,因此你想对它进行子类化。但你希望方法返回子类的类型,而不是原始类型。在Scala 2.8中,要使该类的方法返回相关子类而不是原始类,至少需要做多少工作?例如:class Novel[A] /* Wh...

15得票4回答
Scala模式匹配与小写变量名

我发现在使用模式匹配时对于备选项(用于字符串),Scala接受以大写字母开头的变量(在下面的示例中为MyValue1和MyValue2),但不接受以小写字母开头的变量(myValue1,myValue2)。这是Scala的一个特性还是一个错误?我在2.8版本中遇到了这个问题。如果这是一种特性,...

15得票3回答
如何在Scala中取消导入字符串“+”运算符?

我正在编写一种DSL,其中“+”运算符严格为数字类型,就像其他一些流行的语言一样。这很接近目标,但是字符串“+”运算符正在破坏我的隐式转换。有没有方法可以取消导入String类中的运算符? 为了更加清晰,假设现在有如下代码: scala> var x = "2" + 3; x: java...

14得票3回答
为什么类型参数边界 T <: Comparable[T] 对于 T = Int 失败?

scala&gt; class Foo[T &lt;: Comparable[T]](val x : T) defined class Foo scala&gt; (3: Int).asInstanceOf[Comparable[Int]] res60: java.lang.Compar...

14得票2回答
将Scala的可变参数转换为Java对象... 可变参数

我有一个Java类用于记录日志,其中有一个方法如下:void info(Object message, Object... params); 在Scala中,我创建了一个类似于以下这样的调用的包装器:def info(msg: =&gt; String, params: Any*) { l...

14得票1回答
在Scala中,什么时候方法需要返回类型?

Scala编译器通常可以推断方法的返回类型,但在某些情况下需要明确指定返回类型。例如,递归方法需要指定返回类型。 我注意到有时会出现错误消息“overloaded method (methodname) requires return type”,但并不是所有重载方法都必须指定返回类型(我有...