hack集合:接口

2018-10-20 11:39 更新

concrete Hack collection classes通常來自各種接口。實際上,具體類中的許多方法都采用和/或返回這里列出的接口。

一般工作流程將是您將構造具體類的實例,使用參數(shù)中的具體類或接口或返回類型注釋,并調(diào)用具體類的方法可能返回一個接口。

每個接口方法的描述可以在API參考中找到。

核心接口

這些是允許迭代,轉(zhuǎn)換(例如toVector)和操縱(例如filter)的接口。

接口描述關鍵方法
Traversable<T>任何可以迭代使用類似的東西foreach。一個關鍵是沒有必要,只是價值觀。N / A
KeyedTraversable<Tk, Tv>擴展 Traversable<T> 并需要一個密鑰存在。N / A
Container<T>擴展 Traversable<T>,但只包括數(shù)組和Hack集合N / A
KeyedContainer<Tk, Tv>擴展 KeyedTraversable<Tk, Tv>,但只包括數(shù)組和Hack集合(除了 Set 和 ImmSet 因為他們沒有鑰匙)N / A
Indexish<Tk, Tv>擴展 KeyedTraversable<Tk, Tv> 并且是可以使用方括號符號索引的任何東西,除了實現(xiàn)的對象 ArrayAccess。通常具有鍵string或類型的實體int。有一個方法采取一些常見的方法Indexish 或返回 Indexish。N / A
IteratorAggregate<T>擴展 Traversable<T> 并可以生產(chǎn) Iterator。不由數(shù)組實現(xiàn) 很少直接使用。getIterator()
Iterable<T>擴展IteratorAggerate<T>并且是聲明為Hack集合提供功能的方法的界面。toArray(),toValuesArray(),toVector(),toImmVector()toSet(),toImmSet(),lazy(),values(),map<Tm>((function(T): Tm) $callback)filter((function(T): bool) $callback),zip<Tz>(Traversable<Tz> $traversable),take(),takeWhile()skip(),skipWhile(),slice()concat(),firstValue(),lastValue()
KeyedIterable<Tk, Tv>擴展 Iterable<Tv> 并增加了關鍵功能toKeysArray()toMap(),keys(),lazy(),take(),takeWhile()skip(),skipWhile()firstKey(),lastKey()mapWithKey<Tm>(function(Tk, Tv): Tm $callback),filterWithKey(function(Tk, Tv): bool $callback),getIterator(),map<Tm>(function(T): Tm $callback)filter(function(T): bool $callback),zip<Tz>(Traversable<Tz> $traversable)

一般收集界面

這些接口在所有集合之間保留,提供查詢和添加的基本方法。

接口描述關鍵方法
ConstCollection<T>只讀集合。所有集合都實現(xiàn)此接口。count(),isEmpty(),items()
OutputCollection<T>可變收藏。所有可變集合實現(xiàn)此接口。add(), addAll()
Collection<T>擴展 ConstCollection<T> 和 OutputCollection<T>。結合只讀和可變集合行為。clear()

特定的收藏訪問接口

所有的集合都有某種訪問機制?!癎etters”為不可變的集合。為可變集合添加“setters”。這些是暴露這些訪問功能的接口。

接口描述關鍵方法
ConstIndexAccess<Tk, Tv>所有密鑰集合的接口,用于訪問其值。at(),get(),containsKey()
IndexAccess<Tk, Tv>擴展 ConstIndexAccess<Tk, Tv> 并啟用可變集合來設置密鑰。set(),setAll(),removeKey()
ConstSetAccess<Tm>所有集合的接口,以訪問其值。contains()
SetAccess<Tm>擴展 ConstSetAccess<Tm> 并啟用可變集以刪除值。remove()
ConstMapAccess<Tk, Tv>擴展 ConstSetAccess<Tk> 和 ConstIndexAccess<Tk, Tv> 并啟用對地圖值的訪問。N / A
MapAccess<Tk, Tv>擴展 ConstMapAccess<Tk, Tv>, SetAccess<Tk> 和 IndexAccess<Tk, Tv> 并啟用可變地圖設置和刪除鍵和值。N / A

特定收集接口

每個concrete Hack collection class實現(xiàn)了與該類相關聯(lián)的適當?shù)慕涌凇?/p>

接口描述關鍵方法
ConstSet<Tv>擴展 ConstCollection<Tv>, ConstSetAccess<Tv>, Container<Tv> 和 KeyedIterable<mixed, Tv> 并且表示只讀集合。bunch.
MutableSet<Tv>擴展 ConstSet<Tv>, SetAccess 和 Collection<Tv> 并表示可變集。bunch.
ConstVector<Tv>擴展 ConstCollection<Tv>, ConstIndexAccess<int, Tv>, Indexish<int, Tv> 和 KeyedIterable<int, Tv> 并且表示只讀向量(值序列)。bunch.
MutableVector<Tv>擴展 ConstVector<Tv>, IndexAccess<int, Tv> 和 Collection<Tv> 并表示可變載體。bunch.
ConstMap<Tk, Tv>延長ConstCollection<Pair<Tk, Tv>>,ConstMapAccess<Tk, Tv>, Indexish<Tk, Tv> 和 KeyedIterable<Tk, Tv>并且表示鍵Tk到值的只讀映射Tv。bunch.
MutableMap<Tk, Tv>擴展 ConstMap<Tk, Tv>, MapAccess<Tk, Tv> 和 Collection<Pair<Tk, Tv>> 并表示可變圖。bunch.
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號