Swift - 将结构传递给方法?

标签 swift

以下代码给出编译错误,因为它认为传递给函数的数组不再可变。我知道 Array 是一个结构,因此通过值而不是引用传递,那么您如何处理类似于将结构传递给方法并希望能够修改它的情况? 在这种情况下不想使用扩展程序。

var array = ["1", "2", "3"]
array.removeLast()
removeOne(array)

func removeOne(array: Array<AnyObject>) {
   array.removeLast()
}

最佳答案

@Mike S 上面的回答是正确的,但如果你想将它用于任何类型,你将需要一个通用函数:

func removeOne<T>(inout array: Array<T>) {
    array.removeLast()
}

var array = ["1", "2", "3"]
removeOne(&array)

关于Swift - 将结构传递给方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25345537/

相关文章:

ios - 在 UITableView 中使用自动布局,为什么周围有这么多额外的空间?

ios - SpriteKit - 使某些 SpriteNodes 在不禁用其物理体的情况下不会发生碰撞

ios - 使用 cocoapods-1.0.1 下载时 Coreplot 抛出错误

ios - 按字母顺序对 UItableview 中的数据进行排序的最简单方法

ios - 使用 RxSwift 重新加载 Tableview

ios - 如何在滚动时使 UIImage 淡入淡出?

ios - Swift 通用回调

ios - SPTPlaylistSnapshot tracksForPlayback 返回 nil

ios - Coredata 很慢; swift

ios - 无法确定用户何时不允许定位服务