【问题标题】:wrapping/unwrapping terminology (Swift) [duplicate]包装/展开术语(Swift)[重复]
【发布时间】:2015-12-22 18:04:27
【问题描述】:

不,以上没有回答这个问题!在发布之前,我阅读了该帖子两次。人们似乎认为我在问什么是可选的。我确实知道什么是可选的,这就是为什么我用它作为一个例子来阐明包装术语。让我进一步简化:

//--------------------------------------------- --------------

如果是可选的:

可选本身是包装器吗?当您将变量声明为可选时,您是否包装了它?我会对这些问题的答案感到满意。

//--------------------------------------------- --------------

关于 [on SO] 此处展开的答案是 [更多] “如何”和“为什么”类型的。我想确切地知道“什么”!如果我将此作为可以确认或纠正的假设,这可能是最好的。

使用可选作为仅示例,以便准确说明包装器是什么。

这是否正确:

在这个例子中,可选的是包装器。这相当于一个可以包含值或 nil 的“包”。当您打开可选项时,您正在访问其中的值。继续这个比喻,“打开包装就是打开包装,露出里面的东西”。

这也是正确的吗:

包装器是必要的,因为底层内容可能为零。

另一个包装器的例子是什么?它包装了什么?

edit:那么你们中的一个 [luk2302、Eric D.、Daniel Storm、Undo、Himanshu] 告诉我答案在哪里?

【问题讨论】:

  • 您是想了解可选的概念,还是仅在此上下文中了解术语“包”和“包装器”的详细信息?
  • 可选本身是包装器吗?当您将变量声明为可选时,您是否包装了它?这就是我所需要的。

标签: swift terminology


【解决方案1】:

另一个包装示例是enum,它可以包装结果或错误。例如。这个:

enum Result<T, E> {
    case Success(T)
    case Error(E)
}

【讨论】:

  • 安东,谢谢。我只是通过 Swift Programming Guide 的一半多一点,不足以利用你的例子。如果您能回答我帖子中“评论行”之间的两个简单改写的问题,我将不胜感激。再次感谢。
  • 坦率地说,我不太明白Is the optional itself a wrapper? 的问题。首先,术语“包装器”对您意味着什么?看来你使用这个词的方式与我理解的不同。
  • 嗯,这就是我不清楚的地方!可选项可以包含一个值或 nil。可选项是其中的值的包装器还是包含其中的值?该指南广泛讨论了包装和展开,但从未通过示例真正指定包装器是什么。您的枚举是否在这两种情况的包装之上?
  • 你的意思是问一个问题Why optionals in Swift are considered to be "wrappers" in a sense that operation is called "unwrapping the optional"?
  • 不。更容易。选项是包装器吗?并且:当您将变量声明为可选时,您是否刚刚包装了它?我开始觉得两者的答案都是肯定的,只是想确定一下。
猜你喜欢
  • 1970-01-01
  • 2014-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 2014-08-11
  • 2012-04-22
  • 1970-01-01
相关资源
最近更新 更多