[英]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.