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

问题描述 投票:1回答:1

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

swift generics
1个回答
0
投票

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

我想你可以在调用add之前确保两个数字是相同的类型。

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

© www.soinside.com 2019 - 2024. All rights reserved.