我对书中的这些内容有疑问" Scala for the Impatient",我确认了这一点:
String
第一个产生Vector
,第二个产生{{1}}?但我希望它们能够返回相同的值。
答案 0 :(得分:5)
一般来说,for comprehension中的第一个集合决定了yield
的返回类型。
由于:
在scala中,理解是Collection
.map
,.flatMap
等的语法糖。所以你开始的系列就是你最终得到的系列。
您的代码与map
和flatMap
的等效代码为:
"Hello".flatMap(c => (0 to 1).map(i => (c + i).toChar))
或
(0 to 1).flatMap(i => "Hello".map(c => (c + i).toChar))