gpt4 book ai didi

scala - 为什么 Scala 语言要求你初始化一个实例变量而不是依赖一个默认值?

转载 作者:行者123 更新时间:2023-12-03 10:41:27 24 4
gpt4 key购买 nike

Scala 语言要求您在使用实例变量之前对其进行初始化。但是,Scala 不会为您的变量提供默认值。相反,您必须使用通配符下划线手动设置其值,它的作用类似于默认值,如下所示

var name:String = _

我知道,我知道......我可以在类定义中定义一个构造函数,它将我们的实例变量作为参数,因此Scala不会强制其初始化,如下所示
class Person(var name:String) 

但是,我需要在正文中声明它,因为我需要使用 ElementType 为 FIELD 或 METHOD 的 Java 注释;也就是说,它可以只应用于我们类主体中声明的实例变量或方法。

问题:为什么 Scala 语言要求你初始化一个实例变量——无论是默认值 _ 还是你想要的任何东西——在类的主体中声明而不是依赖于默认值?

最佳答案

当您将其指定为构造函数参数时,您可以应用该注释。此外,您可能需要使用元注释来限制您正在使用的注释应用于哪个目标 - 参见 http://www.scala-lang.org/api/2.10.2-RC2/index.html#scala.annotation.meta.package

不过,您关于“依赖默认值”的问题有些不清楚。使用下划线初始化对应于将变量的值分配为 null。你还想到什么其他默认值?

关于scala - 为什么 Scala 语言要求你初始化一个实例变量而不是依赖一个默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7291168/

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