我知道可以通过在sbt中运行来运行单个测试
testOnly *class -- -n Tag
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉sbt/scalatest在没有标签的情况下运行单个测试?例如:
testOnly *class -- -X 2
Run Code Online (Sandbox Code Playgroud)
这意味着"在课堂上进行第二次测试.无论是什么".我们有一堆测试,没有人费心去标记它们,所以有没有办法在没有标签的情况下运行单个测试?
在CoffeeScript中将值附加到数组的规定方法是什么?我检查了PragProg CoffeeScript书,但它只讨论了创建,切片和拼接,以及迭代,但没有附加.
学习Scala当前需要反转Map来进行一些反向值 - >键查找.我正在寻找一种简单的方法来做到这一点,但只提出:
(Map() ++ origMap.map(kvp=>(kvp._2->kvp._1)))
Run Code Online (Sandbox Code Playgroud)
有人有更优雅的方法吗?
有人能用简单的语言向我解释一下Shapeless库的用途吗?
Scala具有泛型和继承功能,所以我对Shapeless的用途有点困惑.
也许一个用例来澄清事情会有所帮助.
假设我有一个带有多个构造函数的Java类:
class Base {
Base(int arg1) {...};
Base(String arg2) {...};
Base(double arg3) {...};
}
Run Code Online (Sandbox Code Playgroud)
如何在Scala中扩展它并仍然提供对Base的所有三个构造函数的访问?在Scala中,子类只能调用其中一个超类的构造函数.我该如何解决这条规则?
假设Java类是我无法更改的遗留代码.
除非方法是最终的,否则为什么Scala编译器不会应用尾调用优化?
例如,这个:
class C {
@tailrec def fact(n: Int, result: Int): Int =
if(n == 0)
result
else
fact(n - 1, n * result)
}
Run Code Online (Sandbox Code Playgroud)
结果是
错误:无法优化@tailrec带注释的方法:它既不是私有的也不是最终的,因此可以被覆盖
如果编译器在这种情况下应用TCO,究竟会出现什么问题呢?
这与此问题相反:为什么字符串在Java和.NET中不可变?
这种选择是否仅仅因为操作(追加等)在可变字符串上有效,或者是否有其他原因而在Ruby中进行?
(如果它只是效率,那似乎很奇怪,因为Ruby的设计似乎不会高度重视促进有效的实施.)
如何创建多个维度的数组?
例如,我想要一个整数或双矩阵,就像double[][]在Java中一样.
我知道Scala 2.8中的数组发生了变化,并且旧的数组已被弃用,但是现在有多种方法可以做到这一点,如果有的话,哪个最好?
我对最基本的Scala操作有问题,这让我发疯.
val a = Array(1,2,3)
println(a) and result is [I@1e76345
println(a.toString()) and result is [I@1e76345
println(a.toString) and result is [I@1e76345
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我如何打印数组而不编写我自己的功能,因为那是愚蠢的.谢谢!
为什么类型推断失败?
scala> val xs = List(1, 2, 3, 3)
xs: List[Int] = List(1, 2, 3, 3)
scala> xs.toSet map(_*2)
<console>:9: error: missing parameter type for expanded function ((x$1) => x$1.$times(2))
xs.toSet map(_*2)
Run Code Online (Sandbox Code Playgroud)
但是,如果xs.toSet已分配,则编译.
scala> xs.toSet
res42: scala.collection.immutable.Set[Int] = Set(1, 2, 3)
scala> res42 map (_*2)
res43: scala.collection.immutable.Set[Int] = Set(2, 4, 6)
Run Code Online (Sandbox Code Playgroud)
此外,走另一条路,转换为Set从List,并映射List规定.
scala> Set(5, 6, 7)
res44: scala.collection.immutable.Set[Int] = Set(5, 6, 7)
scala> res44.toList map(_*2)
res45: List[Int] = List(10, 12, 14)
Run Code Online (Sandbox Code Playgroud) scala ×7
arrays ×3
append ×1
coffeescript ×1
constructor ×1
immutability ×1
java ×1
mutable ×1
ruby ×1
sbt ×1
scalatest ×1
shapeless ×1
string ×1
testing ×1