斯卡拉案例课题
发布时间:2020-12-16 08:58:10 所属栏目:安全 来源:网络整理
导读:关于’::’案例类,我有两个问题. ::可以用作 case head :: tail = ... 它是如何工作的?这意味着,Scala用于将List实例与:: case类匹配的流程究竟是什么?鉴于我有一个MyClass类,使用运算符op,我可以创建一个名为op的case类,我可以将其用作: case foo op bar
关于’::’案例类,我有两个问题.
::可以用作 case head :: tail => ... 它是如何工作的?这意味着,Scala用于将List实例与:: case类匹配的流程究竟是什么?鉴于我有一个MyClass类,使用运算符op,我可以创建一个名为op的case类,我可以将其用作: case foo op bar => .... ? 解决方法scala> abstract class Stack { | def push(n :Int):Stack | } defined class Stack scala> final case class push(st :Stack,hd :Int) extends Stack { | override def push(n :Int):Stack = new push(this,n) | } defined class push scala> object NullStack extends Stack { | override def push(n :Int):Stack = new push(null,n) | } defined module NullStack scala> val s = NullStack.push(1).push(2) s: Stack = push(push(null,1),2) scala> def test(s :Stack) = s match { case st push i => println(st +"push " + i) } test: (Stack)Unit scala> test(s) push(null,1)push 2 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |