ios - for - swift heap sort



在Swift中:數組VS NSArray VS[AnyObject]之間的差異 (2)

正如標題所說,Array與NSArray和[AnyObject]之間有什麼區別?

此外,最推薦的方法是什麼。 我的意思是推薦,最簡單的實現是什麼。 謝謝。


Answer #1

Array是Swift構造和泛型struct,這意味著它可以是任何特定類型的數組(Int,String,AnyObject等)

[T]Array<T>語法糖

AnyObject是任何類的對象,包括Objective-C類。

NSArray是一個Objective-C構造,可以容納任何Objective-C對象,並透明地映射到Array<AnyObject>


Answer #2

Array是一個結構體 ,因此它是Swift中的值類型NSArray是一個不可變的Objective C ,因此它是Swift中的引用類型 ,並且它橋接到Array<AnyObject>NSMutableArrayNSArray的可變子類。

var arr : NSMutableArray = ["Pencil", "Eraser", "Notebook"]
var barr = ["Pencil", "Eraser", "Notebook"]

func foo (var a : Array<String>)
{
    a[2] = "Pen"
}

func bar (a : NSMutableArray)
{
    a[2] = "Pen"
}

foo(barr)
bar(arr)

println (arr)
println (barr)

打印:

(
    Pencil,
    Eraser,
    Pen
)
[Pencil, Eraser, Notebook]

因為foo更改了a的本地值並且bar更改了引用。 如果你像其他引用類型那樣let arr而不是var ,它也會工作。





collections