# Collection プロトコル

Collectionプロトコルは、Sequenceプロトコルを継承するプロトコルです。Collectionプロトコルに準拠すると、Collectionプロトコルのインターフェースやfor-in文、Sequenceプロトコルが提供している関数を使うことができます。

# Collection プロトコルの特徴

Collectionプロトコルに準拠すると、以下のことができるようになります。

  • for-in文で列挙できる
  • インデックスやキー名(サブスクリプト)で要素にアクセスできる ( array[0] , dictionary["key"] など)
  • 要素数に関連したインターフェースを使える ( first , lastなど)
  • forEach, map, filter, reduce などの関数を使うことができる

# Collection プロトコルのインターフェース

Collectionプロトコルは、次のようなインターフェースを提供します。

# count

count は、要素の数を調べることができます。

let a = [1,2,3]

let b = a.count // 3

# isEmpty

isEmpty は、配列が空かどうがを調べることができます。空の場合は、true を返し、要素がある場合は false を返します。

let a: [Int] = []

print(a.isEmpty) // true

let b = [1,2,3]

print(b.isEmpty) // false

# first

first は、最初の要素を取得することができます。返り値は、Optional型になります。

let a = [1,2,3]

let b = a.first // Optional(1)

# last

last は、最後の要素を取得することができます。返り値は、Optional型になります。

let a = [1,2,3]

let b = a.first // Optional(3)