gpt4 book ai didi

scala - 有没有办法在不使用 "new"的情况下初始化 Scala 对象?

转载 作者:行者123 更新时间:2023-12-04 10:43:29 25 4
gpt4 key购买 nike

例如,请参阅以下内容

http://www.artima.com/pins1ed/functional-objects.html

代码使用

val oneHalf = new Rational(1, 2) 

有没有办法做类似的事情
val oneHalf: Rational = 1/2

最佳答案

我建议为您的 \ 使用其他一些运算符(比如 Rational )文字,如 /已经在所有数字类型上定义为除法运算。

scala> case class Rational(num: Int, den: Int) {
| override def toString = num + " \\ " + den
| }
defined class Rational

scala> implicit def rationalLiteral(num: Int) = new {
| def \(den: Int) = Rational(num, den)
| }
rationalLiteral: (num: Int)java.lang.Object{def \(den: Int): Rational}

scala> val oneHalf = 1 \ 2
oneHalf: Rational = 1 \ 2

关于scala - 有没有办法在不使用 "new"的情况下初始化 Scala 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6632416/

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