如何在scala中编写匹配代码块的模式?
发布时间:2020-12-16 18:14:58 所属栏目:安全 来源:网络整理
导读:如何编写一个代码块作为包含case语句的参数的函数?例如,在我的代码块中,我不想明确地进行匹配或默认情况.我看起来像这样 myApi { case Whatever() = // code for case 1 case SomethingElse() = // code for case 2} 在我的myApi()中,它实际上会执行代码块
如何编写一个代码块作为包含case语句的参数的函数?例如,在我的代码块中,我不想明确地进行匹配或默认情况.我看起来像这样
myApi { case Whatever() => // code for case 1 case SomethingElse() => // code for case 2 } 在我的myApi()中,它实际上会执行代码块并进行匹配. 解决方法
你必须使用PartialFunction.
scala> def patternMatchWithPartialFunction(x: Any)(f: PartialFunction[Any,Unit]) = f(x) patternMatchWithPartialFunction: (x: Any)(f: PartialFunction[Any,Unit])Unit scala> patternMatchWithPartialFunction("hello") { | case s: String => println("Found a string with value: " + s) | case _ => println("Found something else") | } Found a string with value: hello scala> patternMatchWithPartialFunction(42) { | case s: String => println("Found a string with value: " + s) | case _ => println("Found something else") | } Found something else (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |