如何在scala构造函数中声明类型别名?

Mat*_*ing 16 types scala class case abstract

如果我有一个类在其构造函数中采用元组和其他值,例如:

class Foo(a: Int, b: String, c: (Int, String)) 
Run Code Online (Sandbox Code Playgroud)

如何使用抽象类型以轻量级方式为元组提供更具描述性的名称(不将其包装在新类中):

class Foo(a: Int, b: String, c: Dave) 
Run Code Online (Sandbox Code Playgroud)

我不确定如何在范围内引入类型别名(或者如果这是最好的事情):

type Dave = (Int, String) 
Run Code Online (Sandbox Code Playgroud)

是否存在以这种方式定义类型的约定(或者我应该定义案例类并包装所有内容......)?

我很欣赏它在很多情况下没有意义,但如果我真的只是在寻找一个更具描述性的名字,那么它有可能吗?

谢谢!

jxs*_*ord 10

您可以使用类型别名,例如:

scala> type MyTuple = Tuple2[Int,String]
defined type alias MyTuple

scala> val x = new MyTuple(1, "one")
x: (Int, String) = (1,one)
Run Code Online (Sandbox Code Playgroud)

  • 是的,这是我遇到麻烦的类型别名的范围,Jamil指出我在上面的评论中打包对象. (3认同)