为什么我不能从内部的任一投影中提取元组以使用模式匹配进行理解?

sha*_*yan 5 scala either

为什么这样做:

val somePair: Option[(String,String)] = Some(("John", "Doe"))
(for {
  pair <- somePair.toRight("Hello unknown!").right
} yield s"Hello ${pair._1} ${pair._2}!").merge
Run Code Online (Sandbox Code Playgroud)

但这不会:

val somePair: Option[(String,String)] = Some(("John", "Doe"))
(for {
  (name,lastName) <- somePair.toRight("Hello unknown!").right
} yield s"Hello $name $lastName!").merge
Run Code Online (Sandbox Code Playgroud)

编辑:
我应该添加这是错误消息:
Error:(43, 4) constructor cannot be instantiated to expected type; found : (T1, T2) required: scala.util.Either[Nothing,(String, String)] (name,lastName) <- somePair.toRight("Hello unknown!").right ^

Seb*_*ian 4

这是 Scala 中的一个错误,不幸的是,它已经开放了一段时间了。

请查看https://issues.scala-lang.org/browse/SI-5589以供参考。