【问题标题】:What does "type T = .." mean in Scala?Scala 中的“type T = ..”是什么意思?
【发布时间】:2014-10-14 04:27:40
【问题描述】:
type Set = Int => Boolean

我正在尝试弄清楚这意味着什么。据我了解type 就像一个别名,但我不确定这与使用def 有何不同。如果我的老师没有告诉我使用type,我会选择def。我还需要弄清楚其余部分的含义。所以我们有一个名为Set的类型,也就是Int,但是=> Boolean是什么意思呢?

【问题讨论】:

  • 呃...您将如何尝试使用 def 定义类型别名?
  • 我刚开始 scala ,我不知道 type 和 def 之间的差异是什么。对不起大声笑

标签: scala syntax types


【解决方案1】:

type 关键字创建一个类型别名。如果你知道的话,它与 C++ 中的 typedef 非常相似。目的是将特定于上下文的名称分配给通用事物。因此,在 Person 类中,您可能会使用 type Firstname = String / type Lastname = String ,这样您就可以按类型区分这两个字段,而不会混淆它们(这是一个愚蠢的例子,但已经过了午夜,所以要处理它)。

在这种情况下,您将Set 定义为Int => Boolean 的别名,它是接受Int 并返回Boolean 的函数的类型。我不确定为什么它会构成一个“集合”,但这就是代码的含义。

【讨论】:

  • 大概这是一个“集合”,因为我们可以将集合视为一个函数,它获取一个潜在元素并根据该元素是否在集合中返回真或假。 (因此,偶数集将返回 i%2==0,举个明显的例子)
【解决方案2】:

方括号内的 T [T]

我对 Scala 完全陌生,当我看到这篇文章时,我实际上是想理解方括号中 T 的含义是 [T],我发现它指的是到这个'object'中元素的类型(WrappedArray 是我正在阅读的对象)。

...以防万一这对某人有帮助。

【讨论】:

  • 不回答当前(5 岁)的问题,因为type T = ...[T] 非常不同,[T] 是一个可能也可能不是的类型参数“参考此对象中元素的类型”。
  • 这就是为什么我添加了(0岁)评论:“当我看到这篇文章时,我实际上是想理解方括号中T的含义是什么” i> 澄清我的帖子 截图 我读过的内容和我读过的地方。这是一种共享相关信息的常用方法, 无需为此提出全新的问题……仅此而已。
猜你喜欢
  • 2015-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 2014-11-28
  • 2021-11-16
  • 2015-08-20
  • 1970-01-01
相关资源
最近更新 更多