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

got*_*ch4 10 scala slick

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

type UserIdentity = (String, String)
class UserIdentity(tag: Tag){
...
}
Run Code Online (Sandbox Code Playgroud)

我得到一个编译错误:"期望的类或对象定义"指向type声明.为什么?

Dan*_*mon 18

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

如果你想在包级别提供类型别名(所以你不必显式导入它),最简单的方法是定义一个包对象,它与包的名字相同,并允许你在里面定义任何东西它,包括类型别名.

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

package foo

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

//in another file
package foo.bar
val x: UserIdentity = ...
Run Code Online (Sandbox Code Playgroud)