簡體   English   中英

Scala中的forSome關鍵字是做什么用的?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM