如何将一个变量的整数与另一个变量的整数相加
How to add a variable's integer to another variable's integer
我正在尝试将 randomAmountOfTime
添加到 DispatchTime.now()
,但出现错误。
错误:
Binary operator '+' cannot be applied to operands of type 'DispatchTime' and 'Int'
这是我所做的:
var randomAmountOfTime = Int(arc4random_uniform(5))
let when = DispatchTime.now() + randomAmountOfTime
Dispatch Time 是浮点数,所以必须传入@rmaddy 提供的Double 类型或DispatchTime。 Swift 无法将 Int 和 DispatchTime 相加(因为 DispatchTime 中没有提供运算符,您可以创建自定义扩展)。 Float 和 DispatchTime 也是如此——由于某种原因,这些方法在私有 API 中不可用。
应该这样做:
var randomAmountOfTime = Double(arc4random_uniform(5))
let when = DispatchTime.now() + randomAmountOfTime
如需进一步了解,您可以前往
编辑:
您可以创建自定义文件(如 DispatchTime+Int.swift)并创建用于将 Int 和 DispatchTime 相加的自定义运算符:
public func + (left: Int, right: DispatchTime) -> DispatchTime {
return Double(left) + right
}
假设你的randomAmountOfTime
是秒,你可以使用DispatchTimeInterval.seconds
。
var randomAmountOfTime = Int(arc4random_uniform(5))
let when = DispatchTime.now() + DispatchTimeInterval.seconds(randomAmountOfTime)
我正在尝试将 randomAmountOfTime
添加到 DispatchTime.now()
,但出现错误。
错误:
Binary operator '+' cannot be applied to operands of type 'DispatchTime' and 'Int'
这是我所做的:
var randomAmountOfTime = Int(arc4random_uniform(5))
let when = DispatchTime.now() + randomAmountOfTime
Dispatch Time 是浮点数,所以必须传入@rmaddy 提供的Double 类型或DispatchTime。 Swift 无法将 Int 和 DispatchTime 相加(因为 DispatchTime 中没有提供运算符,您可以创建自定义扩展)。 Float 和 DispatchTime 也是如此——由于某种原因,这些方法在私有 API 中不可用。
应该这样做:
var randomAmountOfTime = Double(arc4random_uniform(5))
let when = DispatchTime.now() + randomAmountOfTime
如需进一步了解,您可以前往
编辑:
您可以创建自定义文件(如 DispatchTime+Int.swift)并创建用于将 Int 和 DispatchTime 相加的自定义运算符:
public func + (left: Int, right: DispatchTime) -> DispatchTime {
return Double(left) + right
}
假设你的randomAmountOfTime
是秒,你可以使用DispatchTimeInterval.seconds
。
var randomAmountOfTime = Int(arc4random_uniform(5))
let when = DispatchTime.now() + DispatchTimeInterval.seconds(randomAmountOfTime)