patterns.scala

来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 39 行

SCALA
39
字号
trait Option[+a] {}case class Some[a](x: a) extends Option[a] {  override def toString(): String = "Some(" + x + ")"  override def equals(that: Any): Boolean = that match {    case Some(x) => this.x == x    case _ => false  }  override def hashCode(): Int = getClass().hashCode() * 41 + x.hashCode()}case object None extends Option[Nothing] {  override def toString(): String = "None"  override def equals(that: Any) = that match {    case None => true    case _ => false  }  override def hashCode(): Int = getClass().hashCode()}object test {  def println(str: String): Unit = java.lang.System.out.println(str)  def print(opt: Option[String]) = opt match {    case Some(x) => println(x)    case None => println("nothing")  }}// if bodies are duplicated, then we would get an error like "double definition"trait John[A,B] {  def filter(x:Any) =    x match {    case (x::xs, _) => "ga"    case _ => {x:String => "foobar"}  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?