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