Swift通用参数和返回类型

时间:2016-07-11 18:03:50

标签: ios swift xcode generics types

使用Swift Generics时,类型占位符是否必须是相同的类型?下面的示例将所有类型占位符转换为字符串类型。参数是否可以是一个字符串,返回类型是Int或do Generics工作,其中每个占位符是相同类型的?

以下是示例:

func takeAndReturnSameThing<T>(t: T) -> T {
    return t
}

Let thing = takeAndReturnSameThing("howdy")

2 个答案:

答案 0 :(得分:1)

类型参数(&#34;占位符&#34;)的重点是它们始终代表相同的类型。

如果您想要一般性地表示多种类型,请引入新的类型参数。

func takeAndReturnADifferentThing<T, U>(t: T) -> U {
    return t.getU()
}

答案 1 :(得分:1)

您可以拥有多个这样的泛型类型:

func takeAndReturnDifferentThing<T,U>(t:T) -> U { 
  return t.convertToU() // Assuming type T has this method.
}

当然你应该constrain T和S来确保T可以转换为S.