我是Swift的新手,我想知道如何让一个函数接受包含各种变量类型的数组。我希望函数只接受不带特定类型的“数组”,但会引发错误。这是我的代码:
func length(arry arry: Array)
{
}
我知道我必须在数组后放置一个<>,但是我需要该函数普遍接受所有数组。
编辑:每当我添加扩展名,我都会得到这些荒谬的错误。我的代码是:
//: Playground - noun: a place where people can play
import UIKit
extension Array {
var length: Int {
return self.count
}
}
var arrY = ["Hello", 0]
for(var i = 0; i < length(arry: arrY); i++)
{
print(arrY[i]);
}
arrY.append(28);
var h = arrY.removeAtIndex(0);
print(h);
我收到以下错误消息:1第10行扩展名可能不包含存储的属性2第11行预期的声明3第18行预期的声明谢谢,
插口
如果需要,可以编写一个通用函数:
func length<T>(arry arry: Array<T>)
{
}
在Swift中,Apple引入了这一概念Generics
,您现在也可以在Xcode 7和Objective-C上找到它。此功能使您可以定义数组或所使用的集合类中每个元素的类型。您可以定义一个通用类或一个通用方法,如给定的示例。此功能使您能够以一种可以在不同类型上安全地工作的方式编写代码,同时利用类型安全的优势。例如,在我给出的示例中,这length
是一个通用方法,该方法将类型T
为Array的输入作为输入。编写这样的方法,可以使您编写一个能够接受不同类型数组的方法。例如,下面的示例代码显示,您可以对Int
和的数组使用相同的方法Double
:
var arr = [13, 23, 32]
var arr2 = [12.3, 23.5, 13.14, 2.75]
var arr3 = ["foo", "boo"]
length(arr)
length(arr)
length(arr)
有关泛型的更多信息,您可以在此链接中查看在线文档,和/或观看WWDC 2014的Swift入门视频,和/或阅读The Swift Programming Language的通用部分。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句