gpt4 book ai didi

Scala中缀/后缀运算符

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

我想让下面的代码工作,但我得到一个编译错误:'
对象 A#c 不带参数'

"b"c d

如果我不使用'd',代码编译得很好。它一定与对我来说是新的中缀/后缀运算符有关。有人可以帮我使上面的代码工作,并向我解释(或给我一些指示)为什么上面的代码语法不起作用?

我的类(class)定义:

object A {
implicit def stringToA(b: String) : A = new A(b)
}

class A(private val b: String) {

object c {
println("c")

def d: Unit = {
println("d!")
}
}
}

最佳答案

在斯卡拉 a op ba.op(b) ,所以你的 "b" c d将是 "b".c(d) , 但你想要的是 "b".c.d ,因此您需要完整地编写它。

如果真的需要写"b" c d ,您可以尝试制作 d方法的 arg c , 例如

trait D {}

object d extends D

class A {

def c(ignored: D) = println("d!")

}

或者可能
class A {

object c {
def apply(ignored: D) = println("d!")
}
}

关于Scala中缀/后缀运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11703812/

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