将在Swift 4中添加任何数字类型的函数

时间:2018-11-05 02:23:37

标签: swift generics

为什么在Swift 4.2中可以使用?

func add<T: Numeric>(num1: T, num2: T) -> T {
    return num1 + num2
}
print(add(num1: 6, num2: 6.7))

但这在Swift 4.2中不起作用吗?

var numOne: Int = 6
var numTwo: Double = 6.7
add(num1: numOne, num2: numTwo)

除了将数字直接放入函数外,这些完全相同。我首先将其存储在变量中,然后将其传递给函数。

我想在swift 4.2中编写一个函数,该函数可以使用Double,Int或Float中的两个,然后将它们加在一起,怎么做到这一点?

1 个答案:

答案 0 :(得分:0)

numOneInt类型,因此将num2推断为Int

我认为您可以在致电add之前确保两个数字的类型相同。

对于类型DoubleIntFloat,您可以将它们全部转换为Double,以防丢失精度。