我的自定义类型定义如下:
type MyType = (String, String)
当我使用这种类型时,我总是要经历我讨厌的元组编号。我当然可以执行以下操作并解压缩内容如下:
val (str1, str2) = myType
我可以为这种类型创建一个伴侣对象,并且有两个方法可以给出元组中的第一个和第二个元素吗?我想宁愿做以下事情:
myType.str1会给我第一个元素,myType.str2会给我第二个元素。
答案 0 :(得分:13)
我可以为这种类型创建一个伴侣对象,并且有两个方法可以给出元组中的第一个和第二个元素吗?
当然,这就是案例类的作用。
如何
case class MyType(str1: String, str2: String)
没有诉诸笨拙的别名?
答案 1 :(得分:3)
这个怎么样:
scala> type MyType = (String, String)
defined type alias MyType
scala> implicit class MyPair(val t: MyType) extends AnyVal {
| def str1 = t._1
| def str2 = t._2
| }
defined class MyPair
scala> val mt: MyType = ("Hello", "World")
mt: MyType = (Hello,World)
scala> mt.str1
res0: String = Hello
scala> mt.str2
res1: String = World