Ios 如何让函数接受所有类型的数组

Ios 如何让函数接受所有类型的数组,ios,arrays,swift,function,Ios,Arrays,Swift,Function,我是Swift的新手,我想知道如何让函数接受包含所有类型变量的数组。我希望函数只接受没有特定类型的“Array”,但它会抛出一个错误。这是我的密码: func length(arry arry: Array) { } 我知道我必须在数组后面加一个,但是我需要这个函数来普遍接受所有数组 编辑: 每当我添加扩展时,我都会遇到这些可笑的错误。我的代码是: //: Playground - noun: a place where people can play import UIKit exten

我是Swift的新手,我想知道如何让函数接受包含所有类型变量的数组。我希望函数只接受没有特定类型的“Array”,但它会抛出一个错误。这是我的密码:

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);
/:操场-名词:人们可以玩耍的地方
导入UIKit
扩展阵列{
变量长度:Int{
返回自计数
}
}
var arrY=[“你好”,0]
对于(变量i=0;i
我会说: 1第十行扩展可能不包含存储的属性 2.第11行预期申报 3在线声明 谢谢


Jack

如果需要,可以编写一个通用函数:

func length<T>(arry arry: Array<T>)
{

}

有关泛型的更多信息,您可以查看在线文档,和/或观看Swift简介视频,和/或阅读《泛型》的泛型部分,使用泛型函数是更好的答案。但是您也可以使用
[Any]
作为此函数的参数

func length(array: [Any])->Int{
    return array.count
}

如果您习惯于
.length
,则使用
length
属性对数组进行扩展:

extension Array {
    var length: Int {
        return self.count
    }
}
然后,您可以在阵列上调用它,就像您习惯于:

["a", "b"].length  // 2
[0, 1].length  // 2

使用泛型函数为什么不使用内置的
count
属性呢?因为我非常习惯Java和其他类似的语言,所以我习惯使用.length,我认为length()比.count更容易记住。我的扩展版本中有一个输入错误。您忘记关闭扩展,缺少一个
}
…您没有按预期使用我的扩展。看看这个,你的代码工作正常。我看了链接,有点困惑。你能解释一下你的代码吗?当我尝试将它与数组变量一起使用时,它只是发送了一个错误:“扩展可能不存储包含的变量。”我一直在使用这种扩展,没有任何问题。在发布我的答案之前,我已经测试了这个,没有任何问题。如果你有一个错误,请解释你是如何做到的。在测试我的答案时,请看我的这张图(虽然我知道它会起作用,但我总是在发布之前进行测试)。当我喜欢“var h=[“Hello”,“Hello”]”时,我会说:“var h=[“Hello”,“Hello”]”,然后在“h.length”之后,你的版本中有一个打字错误。您忘记关闭扩展,缺少一个
}
。。。
["a", "b"].length  // 2
[0, 1].length  // 2