相关疑难解决方法(0)

List.orElse的Scala意外输出

我希望以下代码输出Seq(0),而不是它返回一个函数?

@ Seq(0).orElse(Seq(1))
res2: PartialFunction[Int, Int] = <function1>
Run Code Online (Sandbox Code Playgroud)

我一开始怀疑通过语法将其添加orElseapply函数上,但是从那时起它没有尝试:

@ 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

scala implicit-conversion

1
推荐指数
1
解决办法
320
查看次数

标签 统计

implicit-conversion ×1

scala ×1