scala – 当一个arg预期时,零arg模式匹配
发布时间:2020-12-16 18:38:38 所属栏目:安全 来源:网络整理
导读:鉴于 Scala中的这个定义: class Foo(val n: Int)object Foo { def unapply(foo: Foo): Option[Int] = Some(foo.n)} 这个表达式编译并返回ok: new Foo(1) match { case Foo() = "ok"} 为什么这甚至编译?我希望带有Option [T]的提取器意味着仅使用一个参数
鉴于
Scala中的这个定义:
class Foo(val n: Int) object Foo { def unapply(foo: Foo): Option[Int] = Some(foo.n) } 这个表达式编译并返回ok: new Foo(1) match { case Foo() => "ok" } >为什么这甚至编译?我希望带有Option [T]的提取器意味着仅使用一个参数匹配模式. 换句话说,什么是支持经验行为的语言规则. 解决方法
今天(2.11里程碑)你得到错误:
<console>:15: error: wrong number of patterns for object Foo offering Int: expected 1,found 0 case Foo() => "ok" ^ 我在添加Regex.unapply(c:Char)时遇到了这个问题.在某些时候,你指出的案件被接受,然后被拒绝.我记得我喜欢这个想法,如果我的提取器返回Some(thing),那么布尔匹配情况r()将与情况r(_)相同. 什么有效在scappdoc unapply(Char): http://www.scala-lang.org/files/archive/nightly/docs-master/library/#scala.util.matching.Regex (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |