在初始化时设置日期格式化程序(例如)?

Fat*_*tie 1 swift

假设您有一个全局的日期格式化程序

let df:DateFormatter = DateFormatter()
Run Code Online (Sandbox Code Playgroud)

理想情况下.dateFormat,在相同的全局初始化时间进行设置会很好- 有点像这样

let df:DateFormatter = DateFormatter().dateFormat = "yyyy-MM-dd"
Run Code Online (Sandbox Code Playgroud)

但是DateFormatter没有替代的初始化(没有像这样的东西DateFormatter(withDateFormat: "yyyy-MM-dd"))

真的,有一个Swift解决方案吗?是否存在任何类之外的代码块的语法,它可以在任何类型之前运行,并且可以在其中设置这种性质的东西?

(注意 - 我完全了解替代方法,如单例,扩展等:这是一个Swift结构问题,谢谢.)

vad*_*ian 5

使用闭包进行设置

let df : DateFormatter = {
    let formatter = DateFormatter()
    formatter.dateFormat = "yyyy-MM-dd"
    return formatter 
}()
Run Code Online (Sandbox Code Playgroud)

但是,不鼓励您使用未封装的全局变量.