【问题标题】:What is `Something#A` in scala [duplicate]scala中的`Something#A`是什么[重复]
【发布时间】:2018-01-29 18:13:51
【问题描述】:

我在 Scala 中找到了以下语法。我从未见过# 并且找不到太多关于它的信息? # 是什么意思?

case class WithRole(role: Role) extends Authorization[User, DefaultEnv#A]

【问题讨论】:

    标签: scala


    【解决方案1】:

    这是 scala 中引用类型的一种方式。我深度引用 Scala:

    Scala 中的类型通过两种机制来引用:哈希 (#) 和点 (.) 运营商。可以认为点运算符对类型执行相同的操作 对象的成员。它指的是在特定对象实例上找到的类型。这是 称为路径依赖型。当使用点运算符定义方法时 对于特定类型,该类型绑定到对象的特定实例。这表示 不能使用来自同一类的不同对象的类型来满足任何类型 使用点运算符进行的约束。考虑这一点的最好方法是有一个 由点运算符连接的特定对象实例的路径。对于一个变量 匹配您的类型,它必须遵循相同的对象实例路径。你可以看到一个考试- 稍后再说。 哈希运算符 ( # ) 比点运算符的限制更宽松。它被称为 类型投影,这是一种引用嵌套类型而不需要 对象实例的路径。这意味着您可以像引用嵌套类型一样引用它 没有嵌套。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-07
      相关资源
      最近更新 更多