найти и изменить значение кортежа в массиве [Int: (String: String)] - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь изменить значение базы кортежей для номера комнаты (103), чтобы установить значение от Y до N. Я пытаюсь использовать .firstIndex (где ..... но я не знаю, чтонаписать ... любую идею, как заглянуть внутрь массива NumberroStanze и изменить конкретное значение кортежа от Y до N

спасибо


let numeroStanze = [

    100 : ("Single Room", "N"),
    101 : ("Double Room", "N"),
    102 : ("Double Room", "N"),
    103 : ("Double Room", "Y"),
    104 : ("Single Room", "N"),
    105 : ("Single Room", "N")
]


func bookStanza (stanzaNumero: Int) {
    for (numeroStanza) in numeroStanze {
        if let i = numeroStanze.firstIndex(where: {numeroStanza}) {

        }
    }
}

bookStanza(stanzaNumero: 103)

Ответы [ 2 ]

2 голосов
/ 02 октября 2019

Можно попробовать

var numeroStanze = [

    100 : ("Single Room", "N"),
    101 : ("Double Room", "N"),
    102 : ("Double Room", "N"),
    103 : ("Double Room", "Y"),
    104 : ("Single Room", "N"),
    105 : ("Single Room", "N")
]

numeroStanze[103]?.1 = "N"

print(numeroStanze)
0 голосов
/ 02 октября 2019

Во-первых, я думаю, что использование структуры, подобной этой, намного чище и легче рассуждать о:

struct Stanza {
    enum RoomType {
        case single, double
    }

    let roomType: RoomType
    var isBooked: Bool
}

А затем вы можете изменить значение комнаты в вашем словаре, используя:

numeroStanze[103].isBooked = true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...