hack集合:Compared To Arrays

2018-10-26 11:04 更新

Hack集合和Arrays(數(shù)組)在某些方面是相似的,一般來說比其他數(shù)據(jù)更具體。也有一些差異。

選擇

以下摘要提供了有關(guān)何時使用Hack集合與數(shù)組的一般指導(dǎo)。一般來說,新的Hack代碼應(yīng)盡可能利用集合; 但數(shù)組仍將以一流的方式得到支持。

使用array時間:

  • 您正在與修改除數(shù)組之外的數(shù)組的內(nèi)置函數(shù)交互array_push(), array_pop(), array_shift(), array_unshift()。
  • 您正在與修改數(shù)組內(nèi)部指針的內(nèi)置函數(shù)進(jìn)行交互 current() 和 next()
  • 您正在根據(jù)您傳遞參數(shù)的類型與內(nèi)置函數(shù)進(jìn)行交互,這些函數(shù)具有不同的行為 apc_store()
  • 您將容器傳遞給一個非內(nèi)置函數(shù),該函數(shù)需要array一個參數(shù)(例如在自定義框架中)。
  • 你需要value semantics。

否則,集合應(yīng)該非常適合您的工作流程。

語義

下表提供了數(shù)組和集合之間的一些語義差異和相似之處。

ARRAYCOLLECTION
arrayCan be any type of collection
array<T>This will be similar to a Vector
array<Tk, Tv>, where Tk is int or stringThis will be similar to a Map
array (X, Y)This is similar to a Pair, assuming you add nothing more to the array
Nothing built-in similar to an immutable collectionImmVectorImmMapImmSet
Nothing built-in similar to a Set since all arrays are indexable by key and can have duplicate valuesSet
value semantics (copy of array does not reflect changes to original array)reference semantics (copy of collection does reflect changes to original collection)
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號