gpt4 book ai didi

class - scala 案例类问题

转载 作者:行者123 更新时间:2023-12-04 07:14:16 26 4
gpt4 key购买 nike

我有两个关于 '::' 案例类的问题。

:: 可以用作

case head :: tail => ...

它是如何工作的?意思是,Scala 用来将 List 实例与::case 类匹配的流程究竟是什么?鉴于我有一个 MyClass 类,带有操作符 op,我可以创建一个名为 op 的案例类,我可以将其用作:
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

关于class - scala 案例类问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1521011/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com