给出两个具有相同语义但不同声明的理解,以说明它考虑
for ( i <- 1 to n ) yield { if (i % 2 == 0) 0 else 1 }
和
for { i <- 1 to n
m = if (i % 2 == 0) 0 else 1
} yield m
哪个声明证明效率更高,或者尽管有if-else
表达式声明,是否没有显着的性能差异?
答案 0 :(得分:2)
它们完全相同,都转化为:
(1 to n).map{i => if (i % 2 == 0) 0 else 1}
单 for-comprehension只是单地图的语法糖