gpt4 book ai didi

scala - 使用 var 进行惰性评估

转载 作者:行者123 更新时间:2023-12-02 03:47:40 25 4
gpt4 key购买 nike

我知道lazy val,并且该代码仅在调用时才进行计算,但我无法理解lazy和var的某些内容。

问题

  • 为什么懒惰只允许用于 val 而不允许 var?
  • 在intellij中,抛出以下错误

我使用的Scala版本:Scala 2.12.0

lazy val error

它说只有值定义才允许延迟。我在这里有点困惑,scala 中不是所有东西都是值吗? var 只是一个关键字,它与类型有关。

最佳答案

首先,一些术语:

  • 关键字 val 用于定义“值定义” - 计算一次的定义。
  • 关键字 var 定义一个变量,该变量在首次赋值后可以更改。
  • 因此,当编译器说“仅允许值定义使用惰性修饰符”时,它的意思就是 - 只有 val 而不是 var 可以遵循 lazy 关键字。

为什么Scala不支持lazy var?我猜测将 var 标记为惰性不会被很好地定义:什么会被惰性地评估 - 仅第一个分配?每一项任务?重新分配是否会被视为先前分配的触发因素?还可能存在一些实现问题(例如,我们如何确保在计算先前值时不会分配变量?)。

关于scala - 使用 var 进行惰性评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46257793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com