gpt4 book ai didi

scala - 值类中的 If 语句

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

我需要验证我的值类的参数(如下)。但我收到错误

this statement is not allowed in value class

在编译时,有办法解决这个问题吗?谢谢。

case class Size(val size: Long) extends AnyVal { 
if (size < 0) throw new IllegalArgumentException; // error
def +(s: Size): Size =Size(size + s.size)
}

最佳答案

值类是现有对象的包装器,因此 Scala 实际上并不实例化值类对象,而是使用底层对象(这就是 SIP-15 存在的原因)。因此,没有地方可以放置初始化代码,并且运行时检查 size 根本不可能。

关于scala - 值类中的 If 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39227120/

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