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

插口

我是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是一个通用方法,该方法将类型TArray的输入作为输入。编写这样的方法,可以使您编写一个能够接受不同类型数组的方法。例如,下面的示例代码显示,您可以对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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Java中,如何使用接受其父类的Single函数处理所有子类

接受所有数值类型(int,float,..)并添加它们的函数

如何创建通用函数以解组所有类型?

重载函数时不接受数组类型的参数

如何设计一个接受所有域但依赖于某些状态的局部函数?

接受所有类型作为函数中的参数

AFNetworking接受所有内容类型

仅接受数组值键(并推断返回类型)的函数

如何专门针对所有非数组类型的模板?

如何编写可以接受数组或向量的函数?

如何在函数内打印所有变量及其类型

如何在ReasonML中编写带有类型变量的函数以接受任何类型的参数?

如何使函数根据具有子属性的数组推断类型?

在接受数字或数组作为args的函数内部,无论类型如何,如何有效地对这些args进行操作?

如何使构造函数接受所有类型的迭代器?

如何接受类类型的数组作为参数

表示函数,该函数接受对象数组并返回带有所有键的并集的单个对象

如何定义一个函数来接受所有扩展通用基本类型的类型(Scala,下面的特定代码)?

如何声明一个接受类型化数组参数的函数

如何配置app.json以接受所有连接类型,例如HTTP请求?

如何接受所有SSH请求?

如何创建一个接受所有类型的变量(标量,哈希,数组或引用)的子例程

我如何接受HTML中危险的文件扩展名以外的所有文件类型

如何接受网站的所有警报?

如何扩展接受数组通用元素的类型?

如何在Accept标头中指定我可以接受所有媒体类型?

对于 OpenGL 着色器,您将如何用 C++ 编写一个接受所有类型的统一函数?

如何构建接受多维数组作为参数的函数,接收不兼容的指针类型

函数如何接受满足接口的任何类型?