相关疑难解决方法(0)

如何在Scala中使用正则表达式进行模式匹配?

我希望能够找到一个单词的第一个字母和一个组中的一个字母(如"ABC")之间的匹配.在伪代码中,这可能看起来像:

case Process(word) =>
   word.firstLetter match {
      case([a-c][A-C]) =>
      case _ =>
   }
}
Run Code Online (Sandbox Code Playgroud)

但是我如何抓住Scala中的第一个字母而不是Java呢?如何正确表达正则表达式?是否可以在案例类中执行此操作?

regex scala pattern-matching

118
推荐指数
7
解决办法
14万
查看次数

什么是Scala注释以确保优化尾递归函数?

我认为有一个@tailrec注释可以确保编译器优化尾递归函数.你刚才把它放在宣言面前吗?如果在脚本模式中使用Scala(例如:load <file>在REPL 下使用),它是否也有效?

scala tail-call-optimization

91
推荐指数
3
解决办法
5万
查看次数

我们可以使用匹配来检查类的类型

我是scala的新手,match现在我正在学习这个关键字.

我想知道我们是否可以使用关键字match来检查类的类型.我的代码是:

object Main {
    def main(args: Array[String]) {
        val x = "AA"
        checkType(x)
    }

    def checkType(cls: AnyRef) {
        cls match {
            case String => println("is a String")
            case Date => println("is a Date")
            case _ => println("others")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

代码无法编译,因此,这是不可能的?什么是scala-way来检查类的类型?是吗:

if(cls.isInstanceOf[String]) { ... }
else if(cls.isInstanceOf[Date]) { ... }
else { ... }
Run Code Online (Sandbox Code Playgroud)

对?

scala pattern-matching match

50
推荐指数
2
解决办法
5万
查看次数