Swiftui 中 init() 中变量前的下划线是啥意思?
Posted
技术标签:
【中文标题】Swiftui 中 init() 中变量前的下划线是啥意思?【英文标题】:What does the underscore mean before a variable in Swiftui in an init()?Swiftui 中 init() 中变量前的下划线是什么意思? 【发布时间】:2020-12-09 01:23:00 【问题描述】:momentDate 之前的下划线是什么意思?为什么需要它?
【问题讨论】:
请粘贴实际代码,不要截图。 【参考方案1】:带下划线的变量名指的是Binding
结构的底层存储。这是名为Property Wrappers 的语言功能的一部分。
给定一个变量声明@Binding var momentDate: Date
,您可以访问三个变量:
self._momentDate
是 Binding<Date>
结构本身。
self.momentDate
,相当于self._momentDate.wrappedValue
,是一个Date
。在视图主体中呈现日期时,您将使用它。
self.$momentDate
,相当于self._momentDate.projectedValue
,也是Binding<Date>
。如果他们需要能够更改日期,您可以将此传递给子视图。
对于Binding
,“预计值”($
) 只是self
,_
和$
之间的区别仅在access level 中。但是,其他属性包装器可能会投射不同类型的值(参见 language guide 中的 @SmallNumber
示例)。
【讨论】:
解释得很好,谢谢。 当某些事情解释得这么清楚时,就没有更多的 cmets 了 :-) 非常清楚,谢谢!以上是关于Swiftui 中 init() 中变量前的下划线是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章