【发布时间】:2015-03-13 17:01:02
【问题描述】:
如果我写这样的东西(按照docs 定义 Slick 表):
type UserIdentity = (String, String)
class UserIdentity(tag: Tag){
...
}
我收到一个编译错误:“预期的类或对象定义”指向 type 声明。为什么?
【问题讨论】:
如果我写这样的东西(按照docs 定义 Slick 表):
type UserIdentity = (String, String)
class UserIdentity(tag: Tag){
...
}
我收到一个编译错误:“预期的类或对象定义”指向 type 声明。为什么?
【问题讨论】:
您不能在类、特征或对象定义之外定义类型别名。
如果你想要一个在包级别可用的类型别名(所以你不必显式导入它),最简单的方法是定义一个package object,它与包同名并允许你在其中定义任何内容,包括类型别名。
因此,如果您有一个 foo.barpackage 并且希望添加类型别名,请执行以下操作:
package foo
package object bar {
type UserIdentity = (String, String)
}
//in another file
package foo.bar
val x: UserIdentity = ...
【讨论】: