gpt4 book ai didi

scala - 为什么 Scala 中的隐式类必须驻留在另一个特征/类/对象中?

转载 作者:行者123 更新时间:2023-12-04 17:08:47 26 4
gpt4 key购买 nike

基于 Scala 文档:http://docs.scala-lang.org/overviews/core/implicit-classes.html ,隐式类有三个限制,我在这里引用的第一个限制是

They must be defined inside another trait/class/object



解释/证明这种限制的直觉/理由是什么?

最佳答案

隐式类分解为“普通”类和实例化类的隐式方法:

implicit class IntOps(i: Int) { def squared = i * i }

改写为
class IntOps(i: Int) { def squared = i * i }
implicit def IntOps(i: Int) = new IntOps(i)

但是在 Scala 中,您不能在对象或类之外定义方法( def IntOps )。这就是为什么。

关于scala - 为什么 Scala 中的隐式类必须驻留在另一个特征/类/对象中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30583616/

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