相关疑难解决方法(0)

斯卡拉的懒惰论点:它们如何运作?

在来自解析器组合器库的文件Parsers.scala(Scala 2.9.1)中,我似乎遇到了一个鲜为人知的Scala功能,称为"懒惰参数".这是一个例子:

def ~ [U](q: => Parser[U]): Parser[~[T, U]] = { lazy val p = q // lazy argument
  (for(a <- this; b <- p) yield new ~(a,b)).named("~")
}
Run Code Online (Sandbox Code Playgroud)

显然,这里有一些事情正在q为lazy val 分配call-by-name参数p.

到目前为止,我还没有弄清楚它的作用以及为什么它有用.有人可以帮忙吗?

scala lazy-evaluation

37
推荐指数
2
解决办法
2万
查看次数

标签 统计

lazy-evaluation ×1

scala ×1