Generic Initializer

init(grouping:by:)

Creates a new dictionary whose keys are the groupings returned by the given closure and whose values are arrays of the elements that returned each key. 新しい辞書を作成します、それのキーは与えられたクロージャによって返されるグループ分けです、そしてそれの値はいくらかの要素からなる配列で、それが各キーで返されるものです。

Declaration 宣言

init<S>(grouping values: S, by keyForValue: (S.Element) throws -> Key) rethrows where Value == [S.Element], S : Sequence

Parameters パラメータ

values

A sequence of values to group into a dictionary. 辞書へとグループにする幾つかの値からなるシーケンス。

keyForValue

A closure that returns a key for each element in values. valuesの中の各要素に対するキーを返すクロージャ。

Discussion 解説

The arrays in the “values” position of the new dictionary each contain at least one element, with the elements in the same order as the source sequence. 新しい辞書の「values」位置での配列は、それぞれ少なくとも1つの要素を含み、元となるシーケンスと同じ順序で要素を持ちます。

The following example declares an array of names, and then creates a dictionary from that array by grouping the names by first letter: 以下の例は、いくらかの名前からなる配列を宣言します、それから名前を最初の文字でグループ分けすることによって、その配列から辞書を作成します。


let students = ["Kofi", "Abena", "Efua", "Kweku", "Akosua"]
let studentsByLetter = Dictionary(grouping: students, by: { $0.first! })
// ["E": ["Efua"], "K": ["Kofi", "Kweku"], "A": ["Abena", "Akosua"]]

The new studentsByLetter dictionary has three entries, with students’ names grouped by the keys "E", "K", and "A". 新しいstudentsByLetter辞書は、生徒の名前をキー"E""K"、そして"A"でグループ分けして、3つの登録項目を持ちます。

See Also 参照

Creating a Dictionary 辞書の作成