gpt4 book ai didi

function - Scala "def"方法声明 : Colon vs equals

转载 作者:行者123 更新时间:2023-12-04 16:52:39 25 4
gpt4 key购买 nike

我正处于学习 Scala 的早期阶段,我注意到声明方法的不同方式。

我已经确定不使用等号会使该方法成为无效方法(返回 Unit 而不是值),并且使用等号返回实际值,因此

def product(x: Int, y: Int) {
x*y
}

将返回 () (单位),但
def product(x: Int, y: Int) = {
x*y
}

将返回两个参数的乘积( x*y )

我注意到了第三种声明方法的方式——用冒号。这是一个例子
def isEqual(x: Any): Boolean

这与 = 有何不同?符号?在什么情况下最好使用这种方式?

最佳答案

当您使用冒号(并使用 equal)时,您明确定义了方法的返回类型。

// method return Boolean value
def m(a : Int) : Boolean = a > 0

当您不使用冒号并使用 equal 时,您允许 Scala 编译器推断返回类型本身。
// method has return type of last expression (Boolean)
def m(a : Int) = a > 0

当您既不使用冒号也不使用等号时,您的方法的返回类型为 Unit 类。
// method has Unit return type
def m(a : Int){
a > 0
}

关于function - Scala "def"方法声明 : Colon vs equals,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26670056/

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