swift - 在 Swift 中添加日期类型和 Int 类型?

标签 swift

这是一个非常简单的问题,但一直困扰着我。根据 Swift 的说法,不同类型的值是不可能相加的(比如 String 和 Int),下面的代码怎么可能将 Date 类型和 Int 类型相加在一起呢?

let someDate = Date() + 2828282

最佳答案

Date 的文档页面上你可以看到 有一个+ 运算符以 DateTimeInterval 作为操作数:

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/

相关文章:

ios - 使用 iOS Swift 隐藏三个按钮中的一个按钮

ios - 在 iPhoneX 上设置 UITabBarController 的 ViewControllers 会错放标签

ios - 通过Swift滚动隐藏/取消隐藏UISearchBar

ios - 添加全屏 View 作为 View Controller 的 subview

ios - 卸载 Nib 时调用什么函数?

ios - ITMS-90809 : Deprecated API Usage -- Apple will stop accepting submissions of apps that use UIWebView APIs

swift - 如何获取每天重复的通知

ios - 如何根据文字长度或背景图片调整按钮宽度

ios - swift - 根据对象的可选 bool 属性对对象数组进行排序,而无需强制展开

ios - Realm 不想更新 RLMObject 属性的值