【发布时间】:2016-05-17 23:11:32
【问题描述】:
我来自 Python 和 R 等语言的背景,这两种语言都有 range() 函数返回该语言的公共集合类型(Python 的 range() 返回一个列表,而 R 的 range() 返回一个向量)。
所以我很惊讶 Scala 提供Range,不是作为函数,而是作为数据类型。更令人惊讶的是,Range 不仅仅是List 或Vector 等更常见的集合类型的别名,而是它自己的独立数据类型!
谁能解释一下 Scala 设计理念的哪一部分导致 Range 成为一种独特的数据类型?
【问题讨论】:
-
请注意,Python 的
range仅在 Python 2 中生成列表。在 Python 3 中,它是一种非常类似于 Scala 的数据类型。 -
为什么这让您感到惊讶?在实践中,两者有区别吗? Guava 带有用于 Java 的
Range类型。一般来说,您应该期望不同的语言做出不同的设计决策。
标签: scala