您可以将函数存储在数组中并根据需要调用它们吗?

时间:2019-04-15 04:39:03

标签: arrays swift function

我是编程的新手(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 个答案:

答案 0 :(得分:0)

您尚未发布问题中正在使用的代码,因此我创建了一个有效的基本示例。您可以尝试使用以下代码。

func one() {
    print("Hello 1")
}
func two() {
    print("Hello 2")
}

let arr = [one, two]

arr[0]

"10101".forEach {
    arr[Int(String($0))!]()
}