我正在查看的一些代码示例
class X {
def k1 = column[Int]("k1")
def k2 = column[Int]("k2")
def * = (k1, k2)
}
这只是一个普通的函数名称还是它有什么特别之处?
答案 0 :(得分:1)
它是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中找到更复杂的用法。
答案 1 :(得分:0)
这只是一个正常的函数名称。 Scala允许将几乎所有字符序列都用作函数名称,尽管有些字符需要使用反引号引起来。
def `def` = "def"