首页 > 解决方案 > 将在 swift 4 中添加任何数字类型的函数

问题描述

为什么这在 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 中的两个,然后将它们加在一起,如何实现呢?

标签: swiftgenerics

解决方案


numOneInt类型,所以num2推断为Int.

我认为您可以在调用之前确保这两个号码的类型相同add

对于 type Double, Int, Float,您可以将它们全部转换为Double以防万一不丢失精度。


推荐阅读