链接匹配表达式无法编译.
val x = Array("abc", "pqr")
x match {
case Array("abc", _*) => Some("abc is first")
case Array("xyz", _*) => Some("xyz is first")
case _ => None
} match {
case Some(x) => x
case _ => "Either empty or incorrect first entry"
}
Run Code Online (Sandbox Code Playgroud)
虽然以下编译正常:
(x match {
case Array("abc", _*) => Some("abc is first")
case Array("xyz", _*) => Some("xyz is first")
case _ => None
}) match {
case Some(x) => x
case _ => "Either empty or incorrect …
Run Code Online (Sandbox Code Playgroud) 我已经开始学习Scala并注意到以下两个定义.
def a(m:Int){
println("-" * m)
} //> a: (m: Int)Unit
Run Code Online (Sandbox Code Playgroud)
与 =
def a(m:Int) = {
println("-" * m)
} //> a: (m: Int)Unit
Run Code Online (Sandbox Code Playgroud)
两者都可以使用 a(2)
我注意到第一个函数总是被视为Int => Unit,即使它返回一些东西.
问题:这两个定义在内部有何不同?
(这可能很傻,但我不知道如何谷歌这个)
cons-operator ::在给定列表上是否是线程安全的?
例如,如果2个线程在同一个列表中使用cons-operator会发生什么?
val listOne = 1::2::3::Nil
val listTwo = 4::5::Nil
val combinedList = listOne ::: listTwo // thread1
val combinedList2 = listOne ::: 7:8:NIL // thread2 on the same time
Run Code Online (Sandbox Code Playgroud)