【问题标题】:Swift value Initialization `= Type()` safe and has a default value?Swift 值初始化`= Type()` 安全并且有默认值吗?
【发布时间】:2018-06-27 21:14:57
【问题描述】:

在我的 Swift 旅程中,有人说服我...

var myFloat = Float()

...用默认值(在本例中为 0.0)初始化 myFloat。所以实际上,它与...相同。

var myFloat: Float = 0.0

在一位同事要求证明这一点之后(特别是如果在其他地方更改之前访问原始 myFloat 就没有崩溃的可能性,我已经搜索了一些 Apple 文档,但我没有找到明确的答案。任何人碰巧知道任何有据可查的来源或有证据证明这个断言是错误的?

谢谢!

【问题讨论】:

标签: swift initialization default-value


【解决方案1】:

如果您查看documentation 中的init()Float,它会说明:

创建一个初始化为零的值。

是的,以下几行:

var myFloat = Float()

var myFloat: Float = 0.0

给出相同的结果。一个名为myFloat 的变量,其类型为Float,值为0.0

我个人喜欢第二个选项,因为它是明确的。对于某些类型,它更短:

var myDouble = 0.0
var myInt = 0
var myBool = false

【讨论】:

  • 啊,呃。是的,因为Float() 实际上与Float.init() 相同,所以你是对的。好电话。
  • 是的,我不喜欢 Type.init() 语法。初始化时我更喜欢Type()
  • 罗杰。我在初始化属性时一直在使用= Float(),但我会在使用前更改值(例如从情节提要中获取值)。猜猜这是一种偏好。
  • 当然你也可以var myFloat = Float(0)说清楚。
猜你喜欢
  • 1970-01-01
  • 2014-12-29
  • 1970-01-01
  • 2020-02-08
  • 2015-02-25
  • 1970-01-01
  • 2013-01-17
  • 2014-12-14
相关资源
最近更新 更多