我正在查看的一些代码中的示例
class X {
def k1 = column[Int]("k1")
def k2 = column[Int]("k2")
def * = (k1, k2)
}
它只是一个普通的函数名还是有什么特别之处?
最佳答案
它是Slick中一个抽象方法的名字的 Table
,用于告诉 Slick 如何将这些列转换为 Scala 对象,并将 Scala 对象转换回数据库列。您问题中的完整代码是
class X(tag: Tag) extends Table[(Int, Int)] {
def k1 = column[Int]("k1")
def k2 = column[Int]("k2")
override def * : ProvenShape[(Int, Int)] = (k1, k2) // you may prefer to omit 'override' and return type for readability
}
因此,如果您扩展 Table
,则必须覆盖此方法。
您可以在 documentation 中找到更复杂的用法.
关于scala - def * (def asterisk) 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57525263/