8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Swift]Array<Element>型

Posted at

Array<Element>

  • 配列を表す

    • 順序を持ったコレクション
  • Element : プレースホルダ型

    • 具体的な型で置き換えて、Array<Int>Array<String>のように使う
  • ジェネリック型

    • <>内にプレースホルダ型を持つ型
  • 糖衣構文(シンタックスシュガー)

    • Array<Element>[Element]

配列リテラル

配列リテラル
let a = [1, 2, 3]
let b = ["a", "b", "c"]

型推論

  • 配列リテラルが含む要素の型からプレースホルダ型Elementを推論する

    配列リテラルの型推論
    let strings = ["a", "b", "c"]   // [String]型
    let numbers = [1, 2, 3]         // [Int]型
    
  • 空の配列リテラルの場合、要素が存在しないので型推論できない

    • 型アノテーションによりプレースホルダ型Elementを決定する必要がある

      空の配列リテラル
      let array: [Int] = []
      
  • 配列リテラルが複数の型の要素を含む場合、型推論によって型が決定できない

    • 型アノテーションによりプレースホルダ型Elementを決定する必要がある

      複数の型の要素を含む配列リテラル
      let array: [Any] = [1, "a"]
      

要素にできる型

  • Element型の値を要素にできる

  • Element型にはどのような型も当てはめることができる

    Intの2次元配列
    let integerArrays = [[1, 2, 3], [4, 5, 6]]  // [[Int]]型
    
  • 要素の型と異なる型の値を含めた場合はコンパイルエラー

Array<Element>型の操作

要素へのアクセス

  • サブスクリプト
    • 引数: 要素のインデックスを表すInt型の値

    • 最初の要素のインデックスは0

    • インデックスが範囲外の場合は実行時エラー

      要素へのアクセス
      let strings = ["abc", "def", "ghi"] // インデックスは0, 1, 2
      
      let strings1 = strings[0]   // "abc"
      let strings2 = strings[1]   // "def"
      let strings3 = strings[2]   // "ghi"
      let strings4 = strings[3]   // 実行時エラー(範囲外)
      

要素の更新

  • 更新したい要素を取得して代入演算子=で値を設定

    要素の更新
    var strings = ["abc", "def", "ghi"]
    strings[0] = "xyz"
    
    strings // ["xyz", "def", "ghi"]
    

要素の追加

  • 末尾に要素を追加

    • append(_:)メソッドを使用

      末尾に要素を追加
      var integers = [1, 2, 3]
      integers.append(4)  // [1, 2, 3, 4]
      
  • 任意の位置に要素を追加(挿入)

    • insert(_:at:)メソッドを使用

      • 引数: 追加する要素, 追加する位置のインデックス
      要素を挿入
      var integers = [1, 2, 3]
      integers.append(4)  // [1, 2, 3, 4]
      

配列の結合

  • +演算子で型が一致するArray<Element>型を結合

    配列の結合
    var integers1 = [1, 2, 3]   // [Int]型
    var integers2 = [4, 5, 6]   // [Int]型
    
    let result = integers1 + integers2  // [1, 2, 3, 4, 5, 6]
    

要素の削除

  • remove(at:)メソッド
    • 任意のインデックスの要素を削除
  • removeLast()メソッド
    • 最後の要素を削除
  • removeAll()メソッド
    • すべての要素を削除

      要素の削除
      var integers = [1, 2, 3, 4, 5]
      
      // インデックス:2を削除
      integers.remove(at: 2)
      integers    // [1, 2, 4, 5]
      
      // 末尾を削除
      integers.removeLast()
      integers    // [1, 2, 4]
      
      // 全削除
      integers.removeAll()
      integers    // []
      
8
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?