我想使用模式匹配来检查列表是否为空
val simplelist: List[Char] = List('a', 'b', 'c', 'd')
def test(l:List[Char]):Unit= l.map(d => print(d))
simplelist match {
case x :: xs =>
test(xs)
case Nil=> log.info("empty")
}
输出是bcd而不是abcd
答案 0 :(得分:1)
#include "boost/date_time/posix_time/posix_time.hpp"
boost::posix_time::ptime now(boost::posix_time::microsec_clock::universal_time());
boost::posix_time::ptime before(time_from_string("20040101T000000Z"));
long long diff = (now - before).total_microseconds();
val simplelist: List[Char] = List('a', 'b', 'c', 'd')
2)对于这个问题,输出是bcd而不是abcd
如果def test(l:List[Char]):Unit= l.map(d => print(d))
simplelist match {
case x :: xs =>
test(xs)
case List() => println("empty List") // this will pattern match as empty List
case Nil=> log.info("empty")
}
与
x ='a'并且
xs = List('b','c','d')
并且您仅将xs传递给测试方法。因此,它仅按预期方式打印b,c,d。
答案 1 :(得分:0)
您可以尝试以下简单操作:
scala> List(1,2).isEmpty
res0: Boolean = false
您不需要为此进行模式匹配。