为什么我得到"期望的类或对象定义"在scala中定义类型时?

时间:2015-03-13 17:01:02

标签: scala slick

如果我写这样的东西(根据docs定义Slick表):

type UserIdentity = (String, String)
class UserIdentity(tag: Tag){
...
}

我收到编译错误:“期望的类或对象定义”指向type声明。为什么呢?

1 个答案:

答案 0 :(得分:17)

您无法在类,特征或对象定义之外定义类型别名。

如果您想在包级别提供类型别名(因此您不必明确导入它),最简单的方法是定义package object,其名称与package并允许您定义其中的任何内容,包括类型别名。

因此,如果您有一个foo.bar包,并且希望添加类型别名,请执行以下操作:

package foo

package object bar {
  type UserIdentity = (String, String)
}

//in another file
package foo.bar
val x: UserIdentity = ...