Day 2 – 100 days of SwiftUI

SwiftUI

Arrays

順番を持つリスト。

let john = "John Lennon"
let paul = "Paul McCartney"
let george = "George Harrison"
let ringo = "Ringo Starr"

let beatles = [john, paul, george, ringo]

// beatles[0] == john
// beatles[1] == paul
// beatles[2] == george
// beatles[3] == ringo

Sets

順番を持たず重複を無視するリスト。

let colors = Set(["red", "blue", "green"])
// メモリに格納されるときは入力した順番とは無関係になる

let colors = Set(["red", "blue", "green", "red", "blue"])
// "red" と "blue" は重複しているので無視される

Tuples

再書き込み不可能な配列。
タプルの要素を取り出す時には、tuple.index or tuple.key を指定する。

let example = (key1: "value1", key2: "value2")

let name = (first: "Taylor", last: "Swift")

name.0 // Taylor
name.first // Taylor
name.last // Swift

Arrays vs sets vs tuples

Arrays と Sets と Tuples の使い分け方。

Tuples … 密接に関連があり固定された集合に対して使うべし。
Sets … 重複させたくないけど順番はどうでもいい集合に対して使うべし。
Arrays … 重複を許してもいいけど、順番が大切な集合に大して使うべし。

// Tuples
let address = (house: 555, street: "Taylor Swift Avenue", city: "Nashville")

// Sets
let set = Set(["aardvark", "astronaut", "azalea"])

// Arrays
let pythons = ["Eric", "Graham", "John", "Michael", "Terry", "Terry"]

Dictionaries

辞書。
Key: Value ペア。

let heights = [
    "Taylor Swift": 1.78,
    "Ed Sheeran": 1.73,
]

heights["Taylor Swift"]
// 1.78

Dictionary default values

辞書の Key にない物を参照した場合、デフォルトでは nil を返す。
nil ではなく “Unknown” を返すようにするには以下のように書けば良い。

let favoriteIceCream = [
    "Paul": "Chocolate",
    "Sophie": "Vanilla",
]

favoriteIceCream["Paul"]
// Chocolate
favoriteIceCream["Charlotte"]
// nil
favoriteIceCream["Charlotte", default: "Unknown"]
// Unknown

Creating empty collections

空辞書の作り方。

例えば、空 String 辞書はこう作る。

var teams = [String: String]()

teams["Paul"] = "Red"

空配列の作り方。

例えば、空 Int 配列はこう作る。

var results = [Int]()

空 Sets の作り方。

例えば、空 String Sets と 空 Int Sets はこう作る。

var words = Set<String>()
var numbers = Set<Int>()

空辞書と空配列を空 Sets と同じ文法で定義したければこう作る。

var score = Dictionary<String, Int>()
var results = Array<Int>()

Enumerations

列挙型。複数の定数を一つにまとめておくことができる。(R)

let Result = {
    case success
    case failure
}

let result1 = Result.failure
// failure
let result2 = Result.success
// success

Enum associated values

Enum に型や Key などの情報を加えることができる。

enum Activity {
    case bored
    case running
    case talking
    case singing
}

enum Activity {
    case bored
    case running(destination: String)
    case talking(topic: String)
    case singing(volume: Int)
}
// running がいいなと言うけども、目的地はどこにするんですか?
// talking がいいなと言うけども、何について話すんですか?
// singing がいいなと言うけども、音量はどれくらいがいいんですか?

let talking = Activity.talking(topic: "football")
// Activity の talking の topic は "football" にしましょうや

Enum raw values

Enum の定数のインデックスを指定する方法。

enum TerrestrialPlanets: Int {
    case mercury
    case venus
    case earth
    case mars
}

let mercury = TerrestrialPlanets(rawValue: 0)
// mercury
let earth = TerrestrialPlanets(rawValue: 2)
// earth

// 水星が第0惑星で、地球が第2惑星なのは気持ち悪いので、
// 水星が第1惑星になるようにインデックスを強制的にひとつずらすと、
// 地球が第3惑星となるので気持ちいい。
enum TerrestrialPlanets: Int {
    case mercury = 1
    case venus
    case earth
    case mars
}
let mercury = TerrestrialPlanets(rawValue: 1)
// mercury
let earth = TerrestrialPlanets(rawValue: 3)
// earth

テスト

https://www.hackingwithswift.com/review#start
SwiftUI
スポンサーリンク
スポンサーリンク
Typememo.com

コメント

タイトルとURLをコピーしました