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

我可以在Scala 2.8中命名一个元组(定义一个结构?)吗?

发布时间:2020-12-16 09:34:23 所属栏目:安全 来源:网络整理
导读:对于我来说,每次需要时总是重复一行长整型的元组定义,看起来不是很好。我可以把它命名并用作类型名称吗?很高兴为其字段命名,而不是使用._1,._2等。 解决方法 关于你的第一个问题,你可以简单地使用一个类型别名: type KeyValue = (Int,String) 而且,
对于我来说,每次需要时总是重复一行长整型的元组定义,看起来不是很好。我可以把它命名并用作类型名称吗?很高兴为其字段命名,而不是使用._1,._2等。

解决方法

关于你的第一个问题,你可以简单地使用一个类型别名:

type KeyValue = (Int,String)

而且,当然,Scala是一种面向对象的语言,所以关于如何专门化一个元组的第二个,这个魔术词是继承:

case class KeyValue(key: Int,value: String) extends (Int,String)(key,value)

而已。上课甚至不需要身体。

val kvp = KeyValue(42,"Hello")
kvp._1    // => res0: Int    = 42
kvp.value // => res1: String = "Hello"

但是请注意,从案例类继承(哪个Tuple2是)已被弃用,并且将来可能会被禁止。这是编译器警告你得到上面的类定义:

warning: case class class KV has case class ancestor class Tuple2. This has been deprecated for unduly complicating both usage and implementation. You should instead use extractors for pattern matching on non-leaf nodes.

(编辑:李大同)

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

    推荐文章
      热点阅读