В основном я пытаюсь сделать простое приложение для викторины и вместо того, чтобы писать каждый из отдельных вопросов, я пытаюсь ускорить его, написав функцию, которая затем создаст ее для меня.Как динамически менять имя словаря на основе аргумента функции?
Это то, что я до сих пор
func answerTemplate(answerOne:String, answerTwo:String, answerThree:String, answerFour:String, factNumber:String) {
let fact("\(factNumber)") = ["A": "\(answerOne)", "B": "\(answerTwo)", "C": "\(answerThree)", "D": "\(answerFour)" ]
}
Как вы можете видеть, что я пытаюсь изменить имя словаря быть факт + номер вопроса, однако это дает мне ошибку «последовательные заявления о линия должна быть отделена а;)
есть в любом случае иметь это так, чтобы каждый раз, когда я создаю функцию он будет создать словарь с динамическим именем
вот как я пытаюсь создать.? их:
let answerArray = [
answerTemplate("Beach", "Crickets", "Pac-Man", "Banging", "one"),
answerTemplate("Zipper", "Tie", "Shoe Lace", "Belt", "two"),
answerTemplate("New York", "North Carolina", "Massachusetts", "Rhode Island", "three")
]
Если нет, есть ли другой способ выполнить то, что я пытаюсь сделать здесь?
Что вы пытаетесь достичь с помощью 'let fact (" \ (factNumber) ")'? – idmean
@wumm так сказать, например, я вставляю «четыре» в аргументы func, когда я его называю, что имя словаря будет «FactFour». – Harazzy
Но почему вы верите, что это должно сработать? 'let' объявляет переменную, но то, что вы делаете, больше похоже на вызов функции. Или я чего-то не хватает? Где вы заявляете «факт»? – idmean