繁体   English   中英

def * (def 星号) 是什么意思?

[英]what does def * (def asterisk) mean?

我正在查看的某些代码中的示例

class X {
    def k1 = column[Int]("k1")
    def k2 = column[Int]("k2")
    def * = (k1, k2)
}

它只是一个普通的函数名还是有什么特别之处?

它是SlickTable中一个抽象方法的名称,用于告诉 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 ,则必须覆盖此方法。

您可以在文档中找到更复杂的用法。

它只是一个普通的函数名。 Scala 允许几乎任何字符序列作为函数名,尽管有些需要使用反引号引用。

def `def` = "def"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM