gpt4 book ai didi

scala - 我可以在 Scala 中强制执行一个功能作为右关联和左关联吗?

转载 作者:行者123 更新时间:2023-12-01 11:41:20 24 4
gpt4 key购买 nike

我想按如下方式定义标量乘法向量:

Vector * scalar   (1)
scalar * Vector (2)

我可以将 * 定义为实现第一种情况的 Vector 类的函数。那么第二种情况如何实现,我能想到的一种方法是使用正确的关联函数,但它需要我在函数名中添加“::”,这是不可读的。我希望第二种情况看起来像第一种情况。我怎样才能在 scala 中制作它?谢谢

最佳答案

您需要添加从标量类型到具有 *(x: Vector) 方法的类的隐式转换。它可以像

implicit class ScalarVectorMult(scalar: Double) {
def *(vector: Vector): Vector = vector * scalar
}

这需要放在包对象或对象中——直接放在包上是行不通的。

关于scala - 我可以在 Scala 中强制执行一个功能作为右关联和左关联吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20390838/

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