为什么它被称为成员初始化器

2024-02-19

引用自办公室 Swift 文档 https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ClassesAndStructures.html#//apple_ref/doc/uid/TP40014097-CH13-ID82

所有结构都有一个自动生成的成员初始化器,您可以使用它来初始化新结构实例的成员属性...

问题1:默认初始化器有什么特别之处,为什么不能简单地称为默认初始化器?为什么要加上“memberwise”呢?是因为它列出了Structure.txt中定义的所有成员属性吗?创建实例时还必须遵循结构内部定义的顺序。

问题2是否还有其他特殊的初始化程序有自己的特殊名称?如果是这样,它们是什么样子的。

[注第一部分:] 与 Vadian 先生进一步讨论

[注意第二部分:]


关于问题1:

Swift 中有一条不可撤销的法则:

班级和结构必须在该类的实例出现时将其所有存储的属性设置为适当的初始值或结构被建造。存储的属性不能处于不确定状态。

我们正在谈论structs:

当创建一个struct you can使用默认初始化程序(一对括号)如果所有属性都有默认值。

如果您只是声明没有默认值的属性,编译器会创建一个隐式的成员初始化器– 你哪个have touse – 确保以非常方便的方式为每个属性分配默认值

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么它被称为成员初始化器 的相关文章

随机推荐

  • Xcode xcconfig:根据目标配置依赖项

    寻求解决 Objective C名称空间 https stackoverflow com questions 1474626 objective c function dispatch collisions or how to achiev
  • Raspberry Pi 3 上通用时钟框架驱动程序的 Hello World

    我正在尝试为通过 I2C 连接到 Raspberry PI 3 的时钟编写一个通用时钟框架驱动程序 注意 我对 Linux 和内核编程都很陌生 更新 成功 下面的代码适用于 Hello World 驱动程序 为了加载驱动程序 我必须对设备树
  • TYPO3 v8.7 JQuery 包含在内吗?

    我将 TYPO3 版本从 6 2 31 更新到 8 7 19 现在 JS JQuery 出现了一些问题 我听说 JQuery 自动包含在新的 TYPO3 版本中 是对的吗 提前致谢 你需要更具体地回答这个问题 是的 v8 提供了 jquer
  • Go 包是否应该使用 log.Fatal 以及何时使用?

    到目前为止我已经避免使用log Fatal 但我最近偶然发现了这些问题 代码覆盖率 https stackoverflow com questions 33873305 how to get 100 code coverage in gol
  • Sql Azure - 单独的服务器?

    首先我要说的是 我既不是数据库专家 也不是 Azure 专家 看来 MS 按 Sql Azure 数据库的大小和数量收费 而不是按服务器数量收费 因此 从成本角度来看 在每个服务器实例上放置一个数据库似乎是可行的 我的理解是 有时将数据库放
  • Javascript:文件构造函数的参数 1 无法转换为序列

    我正在尝试更改 a 的文件名File通过 JavaScript 对象
  • 如何用curl和php欺骗referrer? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要一个简单的完整 php curl 代码来欺骗引荐来源网址 我尝试了其他一些但不起作用 我检查的最后一个是这个 function
  • 如何禁用屏幕固定中生成的 Toast 消息?

    我正在开发锁屏应用程序 我想禁用主页按钮 我的应用程序是 设备所有者和设备管理员 现在我正在使用屏幕固定来禁用主页按钮 但是 如果我每次收到消息 屏幕已固定 并关闭 屏幕已取消固定 时就开始活动 并且如果单击主页 则 您的组织不允许取消固定
  • 关于c#中的静态类[重复]

    这个问题在这里已经有答案了 可能的重复 何时在 C 中使用静态类 https stackoverflow com questions 241339 when to use static classes in c 为什么有人会编写静态类 我们
  • 记忆化Python函数

    这是一小段代码 它将每个函数转换为其记忆版本 def memoize f Memoize a given function f def memf x if x not in memf cache memf cache x f x retur
  • 我可以通过编程方式将外部 exe 标记为“安全运行(未知发布者)”吗?

    所以我有自己的应用程序 main exe 在某些安全级别较高的计算机中 由于 未知发布者 它会显示警告 我试图 绕过 它 现在我知道了right方法是对程序集进行签名 购买证书并成为已知的发布者 然后它就不会显示此警告 但证书并不便宜 我的
  • 在没有 Google Apps 的情况下通过 Google Play 商店在私人渠道中部署应用程序?

    我正在构建一个 Android 应用程序 出于各种原因不能公开上市在 Google Play 商店中 我找到了有关的信息Google Play 私人频道 https support google com a answer 2494992 h
  • 在 xPages 中使用数据上下文有什么好处?

    我从未在 xPages 中使用过数据上下文 想了解其好处 如果我想返回内存中的某些内容 我经常调用 SSJS 脚本库中的函数 我相信该脚本库也存储在内存中 假设我在 ssjs 中有一个返回 Notesdocument 的函数 这个函数可能会
  • PHP 架构以及按引用传递与按值传递

    寻求PHP架构师的建议 我对 PHP 不是很熟悉 但已经接管了用该语言编写的大型分析包的维护工作 该架构旨在将报告数据读取到大型键 值数组中 这些数组通过各种解析模块传递以提取每个模块已知的报告参数 已知的参数将从主阵列中删除 并且任何模块
  • Rails paths.rb 语法

    我搜索了又搜索 但找不到详细说明 Rails 3 中的routes rb 语法的页面 有指南 概述 甚至高级示例 但为什么没有一个页面详细说明每个关键字的确切语法 这一页 http www engineyard com blog 2010
  • 在 C# 中引发事件的单元测试(按顺序)

    我有一些代码会引发PropertyChanged事件 我希望能够对事件是否正确引发进行单元测试 引发事件的代码就像 public class MyClass INotifyPropertyChanged public event Prope
  • C++ 中通过常量引用将指针传递给对象

    我正在为大学做一项实际作业 但遇到了一个问题 我有一个声明此方法的类 bool graficarTablero const Tablero tablero const string nombreArchivo 我想通过常量引用传递指向对象
  • IF a == true OR b == true 语句

    我找不到让 TWIG 解释以下条件语句的方法 if a true or b true do stuff endif 我错过了什么还是不可能的 检查这个树枝参考 https github com vito chyrp wiki Twig Re
  • 仍然出现“无法获取连接工厂客户端”错误

    04 01 10 17 20 701 E MapActivity 377 无法获取连接工厂客户端 我得到的只是灰色瓷砖 并且地图未加载 嘿 我认识的每个人都有很多类似的帖子 我彻底浏览了它们 它可以是互联网权限 我在应用程序标签之前添加了该
  • 为什么它被称为成员初始化器

    引用自办公室 Swift 文档 https developer apple com library ios documentation Swift Conceptual Swift Programming Language ClassesA