bug789.scala
来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 33 行
SCALA
33 行
object main { // don't do this at home trait Impl trait SizeImpl extends Impl { def size = 42 } trait ColorImpl extends Impl { def color = "red" } type Both = SizeImpl with ColorImpl def info(x:Impl) = x match { case x:Both => "size "+x.size+" color "+x.color // you wish case x:SizeImpl => "size "+x.size case x:ColorImpl => "color "+x.color case _ => "n.a." } def info2(x:Impl) = x match { case x:SizeImpl with ColorImpl => "size "+x.size+" color "+x.color // you wish case x:SizeImpl => "size "+x.size case x:ColorImpl => "color "+x.color case _ => "n.a." } def main(args:Array[String]): Unit = { // make up some class that has a size class MyNode extends SizeImpl Console.println("hello " + info(new MyNode)) Console.println("hello " + info2(new MyNode)) }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?