Swift 斯威夫特是否有类似于C++;推荐人?
假设某个可能较大的代码块需要使用数组A或数组B,而不是编写Swift 斯威夫特是否有类似于C++;推荐人?,swift,Swift,假设某个可能较大的代码块需要使用数组A或数组B,而不是编写 开关(x){ 案例a: arrayA.append(X) 案例b: arrayB.append(X) }我不知道有什么方法可以获得数组指针-唯一一种使用inout修饰符传递引用的情况是函数参数 然而,闭包在很多方面都非常灵活和可用——我认为这就是其中之一。其思想是创建两个闭包,第一个附加到arrayA,第二个附加到arrayB,然后将要使用的闭包存储在变量中,并使用它: typealias PushToArrayClosure = (
开关(x){
案例a:
arrayA.append(X)
案例b:
arrayB.append(X)
}
我不知道有什么方法可以获得数组指针-唯一一种使用inout
修饰符传递引用的情况是函数参数
然而,闭包在很多方面都非常灵活和可用——我认为这就是其中之一。其思想是创建两个闭包,第一个附加到arrayA
,第二个附加到arrayB
,然后将要使用的闭包存储在变量中,并使用它:
typealias PushToArrayClosure = (value: Int) -> Void
var arrayA = [1, 2, 3]
var arrayB = [4, 5, 6]
let condition = false
let pushA = { (value: Int) in
arrayA.append(value)
}
let pushB = { (value: Int) in
arrayB.append(value)
}
let pushToArray: PushToArrayClosure = condition ? pushA : pushB
pushToArray(value: 7)
arrayA // contains [1, 2, 3]
arrayB // contains [4, 5, 6, 7]