假设我正在编写diff(s1: String, s2: String): List[String]以检查是否s1== s2并返回错误列表:
s1[i] != s2[i] 错误是 s1[i] != s2[i] s1[i]如果i >= s2.length错误是s1[i] is undefined s2[i]如果i >= s1.length错误是s2[i] is missing 例如:
diff("a", "a") // returns Nil
diff("abc", "abc") // Nil
diff("xyz", "abc") // List("x != a", "y != b", "z != c")
diff("abcd", "ab") // List("c is undefined", "d is undefined")
diff("ab", "abcd") // List("c is missing", "d is missing")
diff("", "ab") // List("a …Run Code Online (Sandbox Code Playgroud) 似乎有符号数字的补码表示现在是最流行的(并且可能是现代硬件中使用的唯一表示)。为什么它比其他人更好?
Rhino是一个JavaScript在JVM之上运行的解释器.我想这对于服务器端编程很有用JavaScript.现在我们有Node.js.所以我想知道它Rhino是否仍然具有相关性以及它是否有用.
假设我有一个Seq[Int].现在我想重新排序序列,将序列元素<= 0放在第一位,将元素> 0放在它们之后.如何简单有效地做到Scala?
假设我正在编写一个简单的函数来转义XML字符串.
val map = Map('&' -> "&", '<' -> "<", '>' -> ">") // ... and more
def escape(str: String): String = {
val w = new java.io.StringWriter()
for(c <- str) if (map.contains(c)) w.write(map(c)) else w.write(c);
w.toString
}
Run Code Online (Sandbox Code Playgroud)
它在Scala中看起来不是惯用的,而且,我不知道如何处理map它,它将字符映射到转义字符串.你会怎么建议我解决它?
假设我有一个f: Int => String可能抛出异常的函数.我想写一个函数tryF(f: Int => String, arg: Int, defaultOpt: Option[String]),其工作原理如下:
f(arg)如果没有抛出异常,则调用并返回结果defaultOpt.isDefined然后返回defaultOpt.get我写的如下:
def tryF(f: Int => String, arg: Int, defaultOpt: Option[String]) = {
val r = scala.util.Try(f(arg))
r.toOption orElse defaultOpt getOrElse r.get
}
Run Code Online (Sandbox Code Playgroud)
是否有意义 ?你会改写它吗?
假设我有一个功能def bar(y: Int, f: Int => Int): Int.现在我想测试bar使用specs2并确保f被调用.
如何在没有可变变量的情况下在功能上做到这一点.我可以不用嘲笑吗?