[英]What is the forSome keyword in Scala for?
我发现以下代码片段:
List[T] forSome { type T }
forSome
看起来像一种方法,但是我的朋友告诉我这是一个关键字。
我用Google搜索了它,但是没有找到关于forSome
文档。 这是什么意思,我在哪里可以得到一些文件?
forSome
关键字用于在Scala中定义存在类型。 Scala的词汇表页面解释了它们是什么。 我无法在Scala文档中找到详细解释它们的地方,因此这是我在Google上发现的博客文章,其中解释了它们的有用性。
更新:您可以在Scala规范中找到存在类型的精确定义,但是它非常密集。
总结一下我链接到的一些文章,当您想对某物进行操作但不关心其中的类型细节时,存在性类型很有用。 例如,您想对数组进行操作,但不关心哪种数组:
def printFirst(x : Array[T] forSome {type T}) = println(x(0))
您也可以在方法上使用类型变量:
def printFirst[T](x : Array[T]) = println(x(0))
但在某些情况下,您可能不想添加类型变量。 您还可以为类型变量添加一个绑定:
def addToFirst(x : Array[T] forSome {type T <: Integer}) = x(0) + 1
另请参阅此博客文章 ,这是我从中获得此示例的地方。
我不了解Scala,但您的问题引起了我的兴趣,并开始使用Google搜索。
我发现在Scala的changelog中 :
“现在可以使用新的关键字
forSome
定义存在类型。存在类型的形式为T forSome {Q}
,其中Q
是值和/或类型声明的序列。”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.