当前位置: 首页 > 面试题库 >

在此示例中,美元符号有什么作用?

商棋
2023-03-14
问题内容

Apple编写的有关SwiftUI的教程使用美元符号来绑定数据,而我在查找有关SwiftUI中此数据绑定的更多信息时遇到了麻烦。

Toggle(isOn: $showFavoritesOnly) {

您可以使用$前缀来访问对状态变量或其属性之一的绑定。

这是某种inout类型参数吗?那是使用“&”号传递的。


问题答案:

$是与物业代表一起使用。

不是运算符 ,而是 前缀 (感谢@matt!)。

有关属性委托的更多信息,请参见此Swift Evolution 文档。

例如在中@State var aState = falseState是属性委托。

这意味着如果我们写:

  • aState我们正在获取Bool价值
  • $aState我们正在获取Binding<Bool>价值

不同的属性委托将生成不同的值。



 类似资料:
  • 问题内容: 我正在尝试像在此网页中那样使用printf语句在Java中进行格式化:单击此处。但是我只是不知道$符号的目的是什么。有人可以向我解释一下吗? 输入: 预期的输出:(应该有一个空格而不是_) 我的代码: 问题答案: 这是 参数索引 。您可以阅读文档。我将尝试为您解释教程中的字符串: 通常,格式为。 在我们的示例中,指向语句中的位置。我们有3个字符串格式化,因此为什么我们的格式化字符串有,

  • 问题内容: 我正在看有角度的1.2源代码,我很好奇为什么某些函数以两个美元符号开头。这是某种约定吗? 问题答案: 单个,用于保留公共标识符 保留 专用 标识符的双精度 引用文档: $前缀命名约定 … 如果您检查范围,您可能还会注意到一些以$$开头的属性。这些属性被认为是私有的,不应访问或修改。

  • 问题内容: 注意:我知道该方法。 在下面的代码示例中,我不明白为什么在方法抛出,但不是在方法。 问题答案: 原因如下:正如中所说: 此类的迭代器和方法返回的迭代器是快速失败的:如果在创建迭代器后的任何时间以任何方式对列表进行结构修改,除非通过迭代器自己的remove或add方法,否则迭代器将抛出。 该检查是在迭代器的方法中完成的(如你在stacktrace中所看到的)。但是,next()只有在传递

  • 美元符号($)是命名变量的有效字符,例如,但是当我们讨论命名约定时,我应该在什么时候使用这个符号呢? 例如,下划线最常用来分隔单词,因为不允许有空格。

  • 问题内容: 我想分割一个具有如下内容的字符串: 但是当我使用时: 它不能识别$并且不分割字符串,但是当我用$像X这样的字母替换$时,它可以工作。有人有什么主意吗? 问题答案: split函数需要一个正则表达式(而不是字符串)进行匹配。您的正则表达式使用特殊字符-在本例中为’$’-因此您需要对其进行更改以转义该字符: 还要注意,split返回一个字符串数组- 字符串是不可变的,因此无法修改。对Str

  • 问题内容: 我想要grep ,我希望结果是 为了区分,我将提示标记为。 这里有什么问题? 应该采取什么 grep的字符串 是什么? 问题答案: 问题在于外壳程序在双引号字符串内扩展了变量名。因此,它尝试读取以first开头的变量名。 另一方面,单引号中的变量不会扩展。因此,如果不是因为在正则表达式中表示行尾的特殊字符这一事实,那 将是 可行的。因此需要进行转义:。