加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 结构类型的实际用途?

发布时间:2020-12-16 09:12:14 所属栏目:安全 来源:网络整理
导读:结构类型是“哇,酷
结构类型是“哇,酷!”之一. Scala的功能.然而,对于每个例子,我可以想到他们可能在哪里帮助,隐式转换和动态混合组合通常看起来更好的匹配.他们有什么常见用途和/或适当的建议?

解决方法

除了提供相同方法但不相关但没有实现通用接口的类的罕见情况(例如,close()方法 – Source,对于一个,不扩展Closeable),我发现没有用于结构类型有其限制.但是,如果他们更灵活,我可以写这样的东西:

def add[T: { def +(x: T): T }](a: T,b: T) = a + b

这将整理处理数字类型.每次我认为结构类型可能会帮助我的东西,我打了那个特定的墙.

编辑

然而,无用的我自己找到结构类型,但编译器使用它来处理匿名类.例如:

implicit def toTimes(count: Int) = new {
  def times(block: => Unit) = 1 to count foreach { _ => block }
}

5 times { println("This uses structural types!") }

(隐含)toTimes(5)产生的对象的类型为{def times(block:=> Unit)},即结构类型.

我不知道Scala是如何为每一个匿名的班级做的 – 也许这样做.唉,这就是为什么像我们的图书馆一样缓慢的pimp我的图书馆的一个原因,因为结构类型使用反射来调用方法.而不是一个匿名类,应该使用一个真正的类来避免在我的库中的性能问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读