2017-03-01 14 views
4

爲什麼這項工作:爲什麼我不能從任一投影中提取元組以便使用模式匹配來理解?

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

但這並不:

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

編輯:
我要補充,這是錯誤消息:
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 ^

+1

這是一段時間以來一直開放的錯誤。看看https://issues.scala-lang.org/browse/SI-5589。 – Sebastian

+1

@塞巴斯蒂安是似乎喜歡它。你應該寫它作爲答案 – shayan

回答

相關問題