我希望以下代码输出Seq(0),而不是它返回一个函数?
@ Seq(0).orElse(Seq(1))
res2: PartialFunction[Int, Int] = <function1>
Run Code Online (Sandbox Code Playgroud)
我一开始怀疑通过语法将其添加orElse到apply函数上,但是从那时起它没有尝试:
@ Seq(0).apply.orElse(Seq(1))
cmd3.sc:1: missing argument list for method apply in trait SeqLike
....(omit)
Run Code Online (Sandbox Code Playgroud)
我在IntellJ检查过没有implicit conversion.
怎么了?
编辑:我希望是:
Seq.empty.orElse(Seq(1)) == Seq(1)
Seq(0).orElse(Seq(1)) == Seq(0)
谢谢@AndreyTyukin回答.
在一行中,orElse具有不同类型的不同语义,现在不Seq继承,行为也是如此.PartialFunctionOptionorElse