swiftコレクションタイプ(一)

4872 ワード

基本配列構造Array:
 
var shoppingList: String[] = ["Eggs", "Milk"]

 
このshoppingListは伝統的な意味での配列と変わらない.しかし、それはまたこのようにすることができます.
println("The shopping list contains \(shoppingList.count) items.")

shoppingList.countのこのcountはT(ArrayTypeから継承)の属性であり,現在の配列の長さを取得できる.
また、shoppingListでは、append(単一要素のみ追加可能)または+=(1つ以上の要素を追加可能)演算子で新しい要素を追加することもできます.
 var shoppingList: String[] = ["Eggs", "Milk"]
        shoppingList.append("Banana")
        shoppingList += "Apple"
        shoppingList += ["WaterMelon","Tomato"]

1つまたは複数の要素を下付き文字で直接置き換えることもできます.
        var shoppingList: String[] = ["Eggs", "Milk"]
        shoppingList.append("Bananas")
        shoppingList += "Apples"
        shoppingList += ["WaterMelons","Tomatos","Chocolate"]
        shoppingList += ["",""]
        shoppingList[7...8] = ["Cola","Cookies"]

  
指定した位置の1つ以上の要素を下付きで取得できます.
var firstElement = shoppingList[0]
var mulElements = shoppingList[4...6]

 
指定した場所に新しい要素を挿入
shoppingList.insert("Cheese",atIndex: 4)
        for item in shoppingList{
            println(item);
        }

要素を除去するには2つの方法があります.1、配列の最後の要素を直接除去します.2、下付き文字の位置を指定した要素を除去する
        shoppingList.removeLast()
        for item in shoppingList{
            println(item);
        }
        shoppingList.removeAtIndex(0)
        for item in shoppingList{
            println(item);
        }

配列内の指定した要素を除去するには、直接的な方法はありません.パスおよび削除のみ:
        for (index,value) in enumerate(shoppingList){
            println("Item \(index+1): \(value)")
            if(value == "Bananas"){
                shoppingList.removeAtIndex(index);
            }
        }

実はこの方法はマイクロソフトの言い方では、厳密ではありません.removeAtIndexメソッドの実行後、戻り値はTタイプです.shoppingListのcopyであるべきで、現在の動作の配列に影響を与えることはできないはずです.実際にこの方法は現在の配列に影響を及ぼすと追跡した.
 
配列の初期化
指定したデータ型の空の配列を直接初期化し、後でデータを埋め込むことができます.
var someInts = Int[]()
println("someInts is of type Int[] with \(someInts.count) items.")

出力の結果は0個のitemsが配列中にあることがわかります.
また、サイズの空の配列を直接指定し、初期化データを指定することもできます.
var threeDoubles = Double[](count:3, repeatedValue:0.0)
println("threeDoubles is of type Double[] with \(threeDoubles.count) items")

現在の配列の3つの値が0.0のitemであることがわかります.これはT型の構造関数と関係があります.
init(count: Int, repeatedValue: T)

  
まとめ:
1)swiftの配列は[]でデータ型を定義し、()でデータを指定します.
2)insert,append,+=オペレータで配列を追加できます
3)関数init(count:Int,repeatedValue:T)を構築することで、指定したサイズと初期値の配列を初期化することもできます
4)指定したitemはremoveLastとremoveAtIndexで除去できる
5)指定したitemは、下付き文字で取得または設定できます
 
        var shoppingList: String[] = ["Eggs", "Milk"]
        shoppingList.append("Bananas")
        shoppingList += "Apples"
        shoppingList += ["WaterMelons","Tomatos","Chocolate"]
        shoppingList += ["",""]
        shoppingList[7...8] = ["Cola","Cookies"]
        var firstElement = shoppingList[0]
        var mulElements = shoppingList[4...6]
        shoppingList.insert("Cheese",atIndex: 4)
//        for item in shoppingList{
//            println(item);
//        }
        shoppingList.removeLast()
//        for item in shoppingList{
//            println(item);
//        }
        shoppingList.removeAtIndex(0)
//        for item in shoppingList{
//            println(item);
//        }
        for (index,value) in enumerate(shoppingList){
            println("Item \(index+1): \(value)")
            if(value == "Bananas"){
                shoppingList.removeAtIndex(index);
            }
        }
        
        var someInts = Int[]()
        println("someInts is of type Int[] with \(someInts.count) items.")
        
        var threeDoubles = Double[](count:3, repeatedValue:0.0)
        println("threeDoubles is of type Double[] with \(threeDoubles.count) items")


        //println("The fruits are \(mulElements.count) at position 4-6 in shopping list")
        //println("The shopping contains \(shoppingList.count) items")