swift函数返回一个数组

pet*_*ete 13 arrays ios swift

我正在学习Swift,我可以理解如何创建一个接收数组并返回数组的简单函数.继承我的代码:

 func myArrayFunc(inputArray:Array) -> Array{

 var newArray = inputArray

// do stuff with newArray

 return newArray
 }
Run Code Online (Sandbox Code Playgroud)

我得到的红色错误是:对泛型类型'Array'的引用需要<>中的参数

Kir*_*ins 32

在Swift中Array是泛型类型,因此您必须指定数组包含的类型.例如:

func myArrayFunc(inputArray:Array<Int>) -> Array<Int> {}
Run Code Online (Sandbox Code Playgroud)

如果您希望您的函数是通用的,那么使用:

func myArrayFunc<T>(inputArray:Array<T>) -> Array<T> {}
Run Code Online (Sandbox Code Playgroud)

如果您不想指定类型或具有泛型函数,请使用以下Any类型:

func myArrayFunc(inputArray:Array<Any>) -> Array<Any> {}
Run Code Online (Sandbox Code Playgroud)


Val*_*tin 8

取决于你想要做什么.如果你想要一个带有特定类型MyType数组的专用函数,那么你可以编写如下内容:

func myArrayFunc(inputArray: [MyType]) -> [MyType] {
    // do something to inputArray, perhaps copy it?
}
Run Code Online (Sandbox Code Playgroud)

如果你想要一个通用数组函数,那么你必须使用泛型.这将采用泛型类型T的数组并返回泛型类型U的数组:

func myGenericArrayFunc<T, U>(inputArray: [T]) -> [U] {

}
Run Code Online (Sandbox Code Playgroud)