#arrays #swift #function
#массивы #swift #функция
Вопрос:
Я новичок в программировании (1 неделя), так что это, возможно, глупый вопрос, но здесь идет…
Использование Swift (в программе XCode) Я определил некоторые функции (Func1, Func2 и т.д.), Которые принимают массив целых чисел и меняют местами определенные значения внутри массива. Я попытался создать новый отдельный массив, который содержит Func1, Func2 и т. Д., А Затем я хотел бы, основываясь на случайно сгенерированном числе (например, 10204), применять функции по мере необходимости.
Так, например, число 10204 будет применять Func1, Func0, Func2, Func0, Func4 к массиву.
Я пытался искать идеи в других вопросах на этом сайте, но, похоже, ничего не помогает, несмотря на многочисленные попытки. Вот что я пытаюсь сделать — эти две функции манипулируют целыми числами в массиве с именем «cubePos»
func UC(){
(cubePos[0] , cubePos[17])
=
(cubePos[17] , cubePos[19])
}
func DC(){
(cubePos[26] , cubePos[41])
=
(cubePos[41] , cubePos[43])
}
Обе эти функции отлично работают, когда я применяю их сам. Это то, что мне нужно сделать дальше, определить массив функций:
var arrOfFuncs = [UC , DC]
а затем, учитывая число, например 10110, выполните для «cubePos» эквивалент:
DC
UC
DC
DC
UC
Когда я помещаю что-то вроде:
arrOfFuncs[0]
Я ожидал бы, что код применит UC() к массиву «cubePos», но, похоже, вообще ничего не происходит, несмотря на то, что UC () работает нормально при вводе вручную в код.
Надеюсь, кто-нибудь может помочь!
Ответ №1:
Вы не опубликовали код, который используете в своем вопросе, поэтому я создал базовый образец, который работает. Вы можете попробовать использовать приведенный ниже код.
func one() {
print("Hello 1")
}
func two() {
print("Hello 2")
}
let arr = [one, two]
arr[0]
"10101".forEach {
arr[Int(String($0))!]()
}
Комментарии:
1. Спасибо… На самом деле у меня не было кода, я просто пробовал разные вещи, чтобы посмотреть, смогу ли я заставить его работать, как описано в вопросе. Я попробую и посмотрю, что получится