这是一个非常简单的问题,但一直困扰着我。根据 Swift 的说法,不同类型的值是不可能相加的(比如 String 和 Int),下面的代码怎么可能将 Date 类型和 Int 类型相加在一起呢?
let someDate = Date() + 2828282
最佳答案
在 Date
的文档页面上你可以看到
有一个+
运算符以 Date
和 TimeInterval
作为操作数:
Returns a date with a specified amount of time added to it.
static func +(lhs: Date, rhs: TimeInterval) -> Date
所以你可以添加一个TimeInterval
(这是Double
的类型别名)
到 Date
,但不是 Int
。你的代码编译因为 2828282
是一个“数字文字”,编译器可以从中推断出类型
上下文为 Double
。
这不会编译:
let delta = 2828282 // an Int
let someDate = Date() + delta
// error: binary operator '+' cannot be applied to operands of type 'Date' and 'Int'
您必须将 Int
转换为 TimeInterval/Double
let delta = 2828282 // an Int
let someDate = Date() + TimeInterval(delta)
或将 delta
设为 Double
:
let delta = 2828282.0 // a Double
let someDate = Date() + delta
关于swift - 在 Swift 中添加日期类型和 Int 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44874964/