Ios Swift 3阵列扩展错误

Ios Swift 3阵列扩展错误,ios,swift,xcode,swift3,Ios,Swift,Xcode,Swift3,我想将0始终插入到第0个索引处的数组,我正在尝试在数组上写入扩展名。但给出一些错误,如: 无法使用“Int,at:Int”类型的参数列表调用“insert” 这是我的密码 正如您所定义的,您的扩展适用于所有类型的数组。不幸的是,不可能只在任何数组中插入0。例如,您不能将0插入[字符串]中 您需要使此扩展仅适用于可以包含整数文本0的数组。可以通过在数组的元素类型上添加一个约束来完成此操作,该约束指定该类型为ExpressibleByIntegerLiteral: 例如: var a = [1, 2

我想将0始终插入到第0个索引处的数组,我正在尝试在数组上写入扩展名。但给出一些错误,如:

无法使用“Int,at:Int”类型的参数列表调用“insert”

这是我的密码


正如您所定义的,您的扩展适用于所有类型的数组。不幸的是,不可能只在任何数组中插入0。例如,您不能将0插入[字符串]中

您需要使此扩展仅适用于可以包含整数文本0的数组。可以通过在数组的元素类型上添加一个约束来完成此操作,该约束指定该类型为ExpressibleByIntegerLiteral:

例如:

var a = [1, 2, 3]
let b = a.printWithZero()

print(a)  // [0, 1, 2, 3]
print(b)  // [0, 1, 2, 3]

// Works with an array of Doubles too

var c = [1.5, 2.5, 3.5]
let d = c.printWithZero()

print(c)  // [0, 1.5, 2.5, 3.5]
print(d)  // [0, 1.5, 2.5, 3.5]

正如您所定义的,您的扩展适用于所有类型的数组。不幸的是,不可能只在任何数组中插入0。例如,您不能将0插入[字符串]中

您需要使此扩展仅适用于可以包含整数文本0的数组。可以通过在数组的元素类型上添加一个约束来完成此操作,该约束指定该类型为ExpressibleByIntegerLiteral:

例如:

var a = [1, 2, 3]
let b = a.printWithZero()

print(a)  // [0, 1, 2, 3]
print(b)  // [0, 1, 2, 3]

// Works with an array of Doubles too

var c = [1.5, 2.5, 3.5]
let d = c.printWithZero()

print(c)  // [0, 1.5, 2.5, 3.5]
print(d)  // [0, 1.5, 2.5, 3.5]

我会使用这个简单的代码,没有扩展-Swift 3:

var myArray = [1,2,3]
myArray.insert(0, at: 0)

print(myArray)  // [0,1,2,3]

我会使用这个简单的代码,没有扩展-Swift 3:

var myArray = [1,2,3]
myArray.insert(0, at: 0)

print(myArray)  // [0,1,2,3]