如何在Swift中的对象中使用相同的数组或字典语法?

如何在Swift中的对象中使用相同的数组或字典语法?,swift,Swift,我正在创建一个模拟字典和数组的对象。我可以使用,可以做很多事情 但是我可以用空字典或数组来初始化我的对象吗 let myObject:mimicArray = [] let myObject2:mimicDictionary = [:] 我需要做的只是一个像这样的普通初始化 let myObject = mimicArray() let myObject2 = mimicDictionary() 但是我想用这个语法。我可以这样做吗?您必须实现或修改协议 您必须实施或修改协议 如phimage

我正在创建一个模拟字典和数组的对象。我可以使用,可以做很多事情

但是我可以用空字典或数组来初始化我的对象吗

let myObject:mimicArray = []
let myObject2:mimicDictionary = [:]
我需要做的只是一个像这样的普通初始化

let myObject = mimicArray()
let myObject2 = mimicDictionary()
但是我想用这个语法。我可以这样做吗?

您必须实现或修改协议

您必须实施或修改协议


如phimage在回答中所述,您需要采用可转换协议。例如,采用ArrayTerralConvertible的结构

struct Mimic<T> : ArrayLiteralConvertible {

    typealias Element = T

    var values : [T] = []

    init(arrayLiteral elements: Element...) {

        self.values = elements

    }
}


let mimicTest : Mimic<Int> = []
结构模拟:ArrayTerralConvertible{ typealias元素=T 变量值:[T]=[] init(阵列并行元素:元素…){ self.values=元素 } } 让mimicTest:Mimic=[]
如phimage在回答中所述,您需要采用可转换协议。例如,采用ArrayTerralConvertible的结构

struct Mimic<T> : ArrayLiteralConvertible {

    typealias Element = T

    var values : [T] = []

    init(arrayLiteral elements: Element...) {

        self.values = elements

    }
}


let mimicTest : Mimic<Int> = []
结构模拟:ArrayTerralConvertible{ typealias元素=T 变量值:[T]=[] init(阵列并行元素:元素…){ self.values=元素 } } 让mimicTest:Mimic=[]