gpt4 book ai didi

scala - 如何禁用原始类型的所有隐式转换?

转载 作者:行者123 更新时间:2023-12-04 15:11:01 25 4
gpt4 key购买 nike

当涉及到原始类型的神奇转换时,Scala 似乎表现得像 Java:

val a: Int = 1
val b: Double = 2.3
println(a + b) // 3.3
println(Math.max(a, b)) // 2.3

通常,这是我代码中错误的来源。有没有办法禁用这些隐式转换,以便我的示例给出编译警告/错误?我真的宁愿不得不写
print(a.toDouble + b)
println(Math.max(a.toDouble, b))

每次我都需要这样的转换。

最佳答案

使用 WartRemover .像这样的疣不是内置的,但可以编写(请参阅自述文件中的“编写疣规则”)。虽然现在我认为,这可能比我最初想象的要多。
scalac还有-Ywarn-numeric-widen选项(与 -Xfatal-warnings 一起将警告转换为错误),但我不知道是否有任何未涵盖的情况。

关于scala - 如何禁用原始类型的所有隐式转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27043035/

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