gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 22:02:53 24 4
gpt4 key购买 nike

我是 Swift 的新手,我想知道如何让函数接受包含各种变量类型的数组。我希望该函数只接受没有特定类型的“Array”,但它会引发错误。这是我的代码:

func length(arry arry: Array)
{

}

我知道我必须在 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 第十行 Extensions may not contain stored properties 2 在线十一预期申报 3 在线十八号预期申报谢谢,

jack

最佳答案

如果你愿意,你可以写一个泛型函数:

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

}

在 Swift 中,Apple 引入了 Generics 的概念,您现在也可以在 Xcode 7 和 Objective-C 上找到它。此功能允许您定义数组中每个元素的类型或您正在使用的集合类。您可以像给定的示例一样定义泛型类或泛型方法。此功能使您能够以一种可以安全地处理不同类型的方式编写代码,同时利用类型安全的优势。例如,在我给出的示例中,它说 length 是一种通用方法,它采用 T 类型的数组作为输入。编写这样的方法,允许您编写一个能够接受不同类型数组的方法。例如,下面的示例代码表明您可以对 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)

有关泛型的更多信息,您可以在 this Link 查看在线文档,和/或观看 WWDC 2014 的 Swift 介绍视频,和/或阅读 The Swift Programming Language 的通用部分

关于ios - 如何让函数接受所有类型的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33337152/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com