Swift返回类型澄清

我看到一个Swift函数编写如下:

func calculation(imageRef: CGImage) -> (red: [UInt], green: [UInt], blue: [UInt]) { ... ... } 

我需要知道上面函数中的返回类型是什么。 我无法将它与任何已知类型联系起来,以及它与Objective-C中的等价物有什么关系? 将此函数转换为Objective-C的方法是什么?

这个函数正在返回,这是一个元组

元组可以在一个对象中保存各种类型,但与数组不同,您不能向其添加或删除对象。

来自Apple Developer Swift指南:

元组将多个值分组为单个复合值。 元组中的值可以是任何类型,并且不必彼此具有相同的类型。

Objective-C中不存在元组。 您可以在此处找到有关它的更多信息。

这叫Tuple 在这里学习

它允许在单个变量下对多个值进行分组。

目标c不支持元组。 在objc中你必须使用dictionary ,你必须使用键redgreen和’ blue与数组作为值

 func calculation(imageRef: CGImage) -> (red: [UInt], green: [UInt], blue: [UInt]) { ... ... } 

上面的方法返回元组 (一组可以在Swift中使用的不同值)。

您还可以返回没有命名参数的 元组

 func calculation(imageRef: CGImage) -> ([UInt], [UInt],[UInt]) { ... ... } 

您可以像这样访问返回值(对于未命名的元组参数):

 let returnedTuple = calculation(imagRef) print(returnedTuple.0) //Red print(returnedTuple.1) //Green print(returnedTuple.2) //Blue 

(对于命名元组参数):

 let returnedTuple = calculation(imagRef) print(returnedTuple.red) //Red print(returnedTuple.green) //Green print(returnedTuple.blue) //Blue 

Objective-C中没有元组的等价。

此方法返回一个元组

 func calculation(imageRef: CGImage) -> (red: [UInt], green: [UInt], blue: [UInt]) { return ([],[],[]) }