用流来懒惰地评估scala

时间:2018-03-20 23:13:39

标签: scala lazy-evaluation

我是否正确假设s1.toStream将避免在下面函数的第二行中创建不需要的元组?

  def areEqual(s1: String, s2: String): Boolean = {
    if (s1.length != s2.length) false
    else (s1.toStream zip s2).forall { case (c1, c2) => c1 == c2 }
  }
             ^^^^^^^^

由于

1 个答案:

答案 0 :(得分:2)

你是对的,因为只要第一对c1,c2不等于forAll就会返回false,所以它不会产生以下组合。