Создать сабскрипт

swift
ios

#1

Привет
Не могу выполнить задание №3.Подскажите,пожалуйста


#2

Подсказать что? Какая у вас ошибка, или в чем недопонимание?
Добавьте код из предыдущих 2х заданий.

Пока что это напоминает “напишите все за меня”


#3


#4

Добавил)Форум блочил просто,не мог до этого
Недопонимание в том,что в целом я не знаю как в тело субскрипта прописать второй индекс,который будет искать камень в коробке


#5
typealias Stone = Int

struct Box {
    var stones: [Stone?]
    
    subscript(safe index: Int) -> Stone? {
        get { stones.indices.contains(index) ? stones[index] : nil }
        set { if stones.indices.contains(index) { stones[index] = newValue } }
    }
}

struct Person {
    var boxies: [Box]
    
    subscript(boxId bId: Int, stoneId sId: Int) -> Stone? {
        get { boxies.indices.contains(bId) ? boxies[bId][safe: sId] : nil }
        set { if boxies.indices.contains(bId) { boxies[bId][safe: sId] = newValue } }
    }
}

let persons: [Person] = [.init(boxies: [.init(stones: [1, 2, 3]), .init(stones: [4, 5, 6]), .init(stones: [7, 8, 9]), .init(stones: [11, 12, 13])])]

print(persons)
print(persons[0][boxId: 1, stoneId: 1])

Может что-то такое?


#6

ну вообще в задании нужно создать 3 класса(структуры)
Как я понимаю Камни должны быть классом(структурой) тоже


#7

Ваш вопрос был относительно subscript,
И в данной реализации камень также является структурой


#8

Да,справедливо
Спасибо