【问题标题】:Empty value for Date type in SwiftSwift 中日期类型的空值
【发布时间】:2019-05-14 09:43:40
【问题描述】:

我对 swift 很陌生。

如何在 Swift 中为 Date 类型设置空值以用于声明?

点赞:

var string: String = ""String 类型

var integer: Int = 0Int 类型。

谢谢。

【问题讨论】:

  • 我认为这不是空值,而是默认值。因此,Date 最常用的默认值之一是 Date()
  • 更多上下文可能会有所帮助。您要设置初始值还是空值?后者将是 Swift 中的可选 nil
  • 并非所有类型都接受空初始化器。 0 for Int 有加法/减法的含义。 1 将是乘法/除法中Int 的正确空初始值。您是否考虑过使用可选项?

标签: swift date types declaration


【解决方案1】:

来自documentation

日期值封装单个时间点,独立于任何 特定的历法系统或时区。日期值代表一个 相对于绝对参考日期的时间间隔。

换句话说,日期只不过是 TimeInterval,A.K.A 是 Double,表示自参考日期以来的秒数。然后,Date 的空初始化程序将返回距该参考日期 0 秒的日期。这一切都归结为选择参考日期:

  • 现在:let date1 = Date()
  • 1970 年 1 月 1 日凌晨 12:00:let date2 = Date(timeIntervalSince1970: 0)
  • 2001 年 1 月 1 日上午 12:00:let date3 = Date(timeIntervalSinceReferenceDate: 0)

如果对您有意义,您可以选择某个日期作为参考。示例:Date.distantPastDate.distantFuture、...

现在,如果您希望变量具有特定类型但没有值,则使用optionals 并将其值设置为nil

var date4: Date? = nil

稍后,当您想实际使用该变量时,只需将其设置为非零值即可:

date4 = Date(timeInterval: -3600, since: Date())

要使用实际值,您必须使用可选绑定或类似方法将其解包。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-09
    • 2015-01-15
    • 1970-01-01
    • 1970-01-01
    • 2019-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多