集合の作成
CoddyのSwiftジャーニー「ロジックとフロー」セクションの一部。レッスン 18/56。
Setは、重複しない値の順序なしコレクションです。すべての要素が同じ型で、重複は許可されず、反復処理の順序は予測できません。
var colors: Set<String> = ["red", "green", "blue", "red"]
print(colors.count) // 3(重複した "red" は削除される)リテラル形式では型注釈 Set<String> が必須です。これは、["a", "b"] だけでは Array と推論されるためです。
3つの基本操作:contains、insert、remove。後の2つは、変更に意味があったかどうかに関する情報を返します。
colors.insert("yellow") // 追加する
colors.insert("red") // 既にあるので効果なし
colors.contains("green") // true
colors.remove("blue") // "blue" を返す、存在しない場合は nil配列から集合を作成すると、1ステップで重複を除去できます:
let unique = Set([1, 2, 2, 3, 3, 3])
// 3つの要素、正確な順序は保証されないチャレンジ
初心者1 行の入力を読み取ります:単語のカンマ区切りリスト(重複する可能性があります)。
3 行を出力します:
- unique な単語の数(
Setを使用) - unique な単語をアルファベット順に並べ、
,で結合したもの - 入力に単語
swiftが含まれている場合はtrue、それ以外の場合はfalse(containsを使用)
入力が swift,ruby,go,swift,go,rust の場合、出力は次のようになります:
4
go,ruby,rust,swift
true自分で試してみよう
let words = readLine()!.components(separatedBy: ",")
// TODO: Setで重複を除去し、件数を出力、ソートして結合、指示の正確なテキストを含む
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとフローのすべてのレッスン
自分で練習してみよう: Swiftプレイグラウンド