gpt4 book ai didi

scala - 在 Scala 中使用 def 定义字段是什么意思?

转载 作者:行者123 更新时间:2023-12-04 09:02:01 29 4
gpt4 key购买 nike

究竟有什么区别:

scala> def foo = 5
foo: Int


scala> def foo() = 5
foo: ()Int

似乎在这两种情况下,我最终都会得到一个变量 foo我可以不加括号地引用,总是评估为 5 .

最佳答案

在任何一种情况下,您都没有定义变量。您正在定义一个方法。第一个方法没有参数列表,第二个方法有一个参数列表,它是空的。其中第一个应该是
这样叫

val x = foo 

而第二个应该像这样调用
val x = foo()

但是,Scala 编译器允许您使用一个不带括号的空参数列表调用方法,因此任何一种调用形式都适用于第二种方法。没有参数列表的方法不能用括号调用

首选的 Scala 风格是定义和调用带有括号的副作用的无参数方法。没有副作用的无参数方法应该在没有括号的情况下定义和调用。

如果你实际上要定义一个变量,语法是
val foo = 5

关于scala - 在 Scala 中使用 def 定义字段是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3494320/

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