为什么没有可选的(零),但只有零

  • 本文关键字: swift null option-type
  • 更新时间 :
  • 英文 :


给定follwoing代码示例:

var ResponseCode: Int? = 404
print(ResponseCode) // --> Optional(404)
ResponseCode = nil
print(ResponseCode) // --> nil (why not Optional(nil)?)

问题:为什么当我打印nil值选项时,它只是一个nil。为什么不显示Optional(nil)

感谢您的时间和帮助。

这很容易解释。Optional是一个具有两个值的枚举:.Some(T).None

如您所见,只有一个具有参数。

.Some(T)的字符串描述是"Optional(description of T)".None没有参数,因此描述只是nil

注意您有时可以在日志中看到"Optional(nil)",但是,在这种情况下,我们正在处理双重选项(例如Int??)。

print(Optional<Int?>(Optional<Int>.None)) // prints "Optional(nil)"

,因为 nil是常数字面意思,含义 Option.None

允许可选的存储零值是没有意义的,并且会完全违反选项的目的(非删除性)。

相关内容

  • 没有找到相关文章

最新更新