【发布时间】:2018-01-29 18:13:51
【问题描述】:
我在 Scala 中找到了以下语法。我从未见过# 并且找不到太多关于它的信息? # 是什么意思?
case class WithRole(role: Role) extends Authorization[User, DefaultEnv#A]
【问题讨论】:
标签: scala
我在 Scala 中找到了以下语法。我从未见过# 并且找不到太多关于它的信息? # 是什么意思?
case class WithRole(role: Role) extends Authorization[User, DefaultEnv#A]
【问题讨论】:
标签: scala
这是 scala 中引用类型的一种方式。我深度引用 Scala:
Scala 中的类型通过两种机制来引用:哈希 (#) 和点 (.) 运营商。可以认为点运算符对类型执行相同的操作 对象的成员。它指的是在特定对象实例上找到的类型。这是 称为路径依赖型。当使用点运算符定义方法时 对于特定类型,该类型绑定到对象的特定实例。这表示 不能使用来自同一类的不同对象的类型来满足任何类型 使用点运算符进行的约束。考虑这一点的最好方法是有一个 由点运算符连接的特定对象实例的路径。对于一个变量 匹配您的类型,它必须遵循相同的对象实例路径。你可以看到一个考试- 稍后再说。 哈希运算符 ( # ) 比点运算符的限制更宽松。它被称为 类型投影,这是一种引用嵌套类型而不需要 对象实例的路径。这意味着您可以像引用嵌套类型一样引用它 没有嵌套。
【讨论】: