swift - 将在 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 中的两个,然后将它们加在一起,如何实现呢?
解决方案
numOne
是Int
类型,所以num2
推断为Int
.
我认为您可以在调用之前确保这两个号码的类型相同add
。
对于 type Double
, Int
, Float
,您可以将它们全部转换为Double
以防万一不丢失精度。
推荐阅读
- python - PySpark DataFrame:找到最接近的值并对 DataFrame 进行切片
- makefile - 从 Makefile 中的完整库路径列表构造 LDFLAGS
- java - ND4J 在 GPU 上运行缓慢,但在 CPU 上运行速度快
- java - 如何在几个日期之间获得正确的月数和天数?
- r - 计算从较小的时间戳间隔行进的每小时距离以进行绘图
- java - 使用线程池时如何使 Java 中的线程空闲?
- python-3.x - 替换熊猫数据框列中的特定值,否则将列转换为数字
- parallel-processing - LOV 和 LLITE 指标在 Lustre 中的意义
- javascript - 在 React 中,如何检查是否至少选择了一个复选框
- python - 如何使用 Python Opencv 检测特定区域内的运动?