括号语法在此Table类中的含义是什么?

时间:2014-12-15 03:16:33

标签: java scala playframework-2.0 slick

代码贴在下面:

class Suppliers(tag: Tag) extends Table[(String, String, Int, String)](tag, "suppliers") {
  def snum  = column[String]("snum")
  def sname = column[String]("sname")
  def status   = column[Int]("status")
  def city     = column[String]("city")
  def * = (snum, sname, status, city)
}

我知道第一个括号(tag: Tag)表示Suppliers的参数列表,第二部分Table[(String, String, Int, String)]表示super class with generic

(tag, "suppliers")是什么意思?它是超类Table还是已定义的类Supplier的装饰器。有没有关于此的文件?

2 个答案:

答案 0 :(得分:5)

它只调用Table[(String, String, Int, String)]的构造函数。

表的构造函数采用Tag和String。扩展表(标记,"供应商)只需将所需的值连接到构造函数中(可选择添加类型归属)。这是标准的Scala机制。

答案 1 :(得分:0)

它是一个等效于下面的构造函数:

class Suppliers(tag: Tag) extends Table[(String, String, Int, String)]{
  def snum  = column[String]("snum")
  def sname = column[String]("sname")
  def status   = column[Int]("status")
  def city     = column[String]("city")
  def * = (snum, sname, status, city)
  def this(tag:Tag) {
    super(tag, "suppliers")


}

}