如何使用自定义功能工具扩展Swift Array<T>或T[]类型?
浏览Swift的API文档显示,Array方法是其扩展T[],例如:
extension T[] : ArrayType {
//...
init()
var count: Int { get }
var capacity: Int { get }
var isEmpty: Bool { get }
func copy() -> T[]
}
Run Code Online (Sandbox Code Playgroud)
复制和粘贴相同的源并尝试任何变化时,例如:
extension T[] : ArrayType {
func foo(){}
}
extension T[] {
func foo(){}
}
Run Code Online (Sandbox Code Playgroud)
它无法构建错误:
标称类型
T[]不能扩展
使用完整类型定义失败Use of undefined type 'T',即:
extension Array<T> {
func foo(){}
}
Run Code Online (Sandbox Code Playgroud)
而且它也失败,Array<T : Any>和Array<String>.
好奇Swift让我扩展一个无类型数组:
extension Array …Run Code Online (Sandbox Code Playgroud) 我有这个名为Meal的课程
class Meal {
var name : String = ""
var cnt : Int = 0
var price : String = ""
var img : String = ""
var id : String = ""
init(name:String , cnt : Int, price : String, img : String, id : String) {
self.name = name
self.cnt = cnt
self.price = price
self.img = img
self.id = id
}
}
Run Code Online (Sandbox Code Playgroud)
我有一系列的餐:
var ordered = [Meal]()
Run Code Online (Sandbox Code Playgroud)
我想复制该数组,然后对其中一个中的Meal实例进行一些更改而不更改第二个中的Meal实例,我将如何制作它的深层副本?
此搜索结果对我没有帮助 如何制作数组的完全重复副本?