玖叶教程网

前端编程开发入门

Swift 4.1 官方文档大全(第三十二章)文档修订历史

文档修订历史

此表描述了对Swift编程语言的更改。

2018年2月6日

更新了Swift 4.1。

添加了有条件协议的协议部分,其中包含有关条件协议一致性的信息。

将有关递归协议约束的信息添加到在其关联类型的约束中使用协议部分。

将有关canImport()和targetEnvironment()平台条件的信息添加到条件编译块中。

2017年12月4日

更新了Swift 4.0.3。

更新了键路径表达式部分,现在关键路径支持下标组件。

2017年9月19日

更新了Swift 4.0。

在内存安全章节增加了关于内存独占访问的信息。

现在您可以使用泛型where子句来限制关联类型,从而将关联类型添加到泛型Where子句部分。

有关多行字符串文字的信息添加到“字符串和字符”章节的“字符串文字”部分以及“词法结构”章节的字符串文字部分。

更新了声明属性中关于objc属性的讨论,现在该属性在更少的位置推断出来。

添加了通用下标部分,现在下标可以是通用的。

现在协议组合类型可以包含超类要求,现在更新协议章节的协议组合部分以及类型章节的协议组合类型部分中的讨论。

在扩展声明中更新了协议扩展的讨论,现在最终不允许在其中。

将有关先决条件和致命错误的信息添加到断言和先决条件部分。

2017年3月27日

更新了Swift 3.1。

添加了带有通用Where子句的扩展,其中包含有关包含需求的扩展的信息。

增加了一个范围迭代到For-In循环部分的例子。

添加了Failable Initializers部分的failable数值转换示例。

在声明属性部分添加了关于使用Swift语言版本的可用属性的信息。

更新了函数类型部分中的讨论,注意在写入函数类型时不允许使用参数标签。

在“条件编译块”部分中更新了Swift语言版本号的讨论,现在可以使用可选的补丁编号。

更新了函数类型部分的讨论,现在Swift区分了采用多个参数的函数和采用元组类型的单个参数的函数。

从表达式章节中删除了动态类型表达式部分,现在该类型的(:)是Swift标准库函数。

2016年10月27日

更新了Swift 3.0.1。

在“自动引用计数”一章中更新了对弱引用和无主引用的讨论。

在“声明修改器”部分添加了有关无主,无主(安全)和无主(不安全)声明修饰符的信息。

当期望Any类型的值时,为Any和AnyObject节的类型转换添加了关于使用可选值的说明。

更新了表达式章节以分开对带括号的表达式和元组表达式的讨论。

2016年9月13日

更新了Swift 3.0。

在函数章节和函数声明部分更新了对函数的讨论,注意所有参数默认都会获取参数标签。

在高级操作符章节中更新了操作符的讨论,现在您将它们实现为类型方法而不是全局函数。

将关于open和fileprivate访问级别修饰符的信息添加到访问控制章节。

在函数声明部分更新了对inout的讨论,注意它出现在参数类型的前面,而不是在参数名称的前面。

现在更新关于转义闭包和自动屏蔽部分中的@noescape和@autoclosure属性以及属性章节的讨论,现在它们是类型属性,而不是声明属性。

有关运算符优先级组的信息添加到高级操作符章节的自定义中缀运算符的优先级部分以及声明章节的优先级组声明部分。

经过更新的讨论,使用macOS代替OS X,错误代替ErrorProtocol,以及协议名称,如ExpressibleByStringLiteral而不是StringLiteralConvertible。

更新了泛型章节的泛型Where子句部分以及泛型参数和参数章节中的讨论,现在泛型where子句写在声明结尾。

更新了Escaping Closures部分中的讨论,现在默认情况下关闭是不可转义的。

更新了Basics章节的Optional Binding部分和Statements章节的While Statement部分中的讨论,现在if,while和guard语句使用不带where子句的以逗号分隔的条件列表。

将有关具有多种模式的交换机案例的信息添加到控制流章节的“交换机”部分和“语句”章节的“交换机语句”部分。

现在函数参数标签不再是函数类型的一部分,因此更新了函数类型部分中对函数类型的讨论。

更新了协议章节的协议组合部分和类型章节的协议组合类型部分中对协议组合类型的讨论,以使用新的Protocol1和Protocol2语法。

更新了动态类型表达式部分的讨论,以便为动态类型表达式使用新类型(:)的语法。

更新了行控制语句的讨论,以在行控制语句部分使用#sourceLocation(file:line :)语法。

在永不返回的函数中更新了讨论,以使用新的Never类型。

有关操场文字的信息添加到文字表达部分。

更新了“输入输出参数”部分中的讨论,以指出只有非扩展闭包才能捕获输入输出参数。

更新了有关默认参数值部分中的默认参数的讨论,因为它们无法在函数调用中重新排序。

更新了属性参数以在“属性”章节中使用冒号。

添加了有关在重新抛出函数的catch块中向抛出函数和方法部分抛出错误的信息。

将有关访问Objective-C属性的getter或setter的选择器的信息添加到Selector Expression部分。

向类型别名声明部分添加了关于泛型类型别名和使用协议内部类型别名的信息。

更新了函数类型部分中函数类型的讨论,注意参数类型周围的括号是必需的。

更新了属性章节,注意@IBAction,@IBOutlet和@NSManaged属性暗示了@objc属性。

在声明属性部分添加了关于@GKInspectable属性的信息。

更新了“可选协议要求”部分中关于可选协议要求的讨论,以阐明它们仅用于与Objective-C互操作的代码中。

从函数声明部分删除了显式使用let in函数参数的讨论。

从Statements章节中删除了对布尔协议的讨论,现在该协议已从Swift标准库中删除。

更正了声明属性部分中对@NSApplicationMain属性的讨论。

2016年3月21日

更新了Swift 2.2。

添加了有关如何根据用于“条件编译块”部分的Swift版本条件编译代码的信息。

添加了有关如何区分名称与其显式成员表达式部分名称不同的方法或初始值设定项的信息。

向选择器表达式部分添加了关于Objective-C选择器的#selector语法的信息。

更新了关联类型的讨论,以在关联类型和协议关联类型声明部分中使用associatedtype关键字。

关于在Failable Initializers部分中完全初始化实例之前返回nil的初始化程序的更新信息。

添加了有关将元组与比较运算符部分进行比较的信息。

将关键字用作外部参数名称的信息添加到“关键字”和“标点符号”部分。

更新了声明属性部分中@objc属性的讨论,以指出枚举和枚举情况可以使用此属性。

更新了运算符部分,讨论了包含点的自定义运算符。

在重新生成函数和方法部分添加了一个注释,重新生成函数不能直接抛出错误。

当您将属性作为输入输出参数传递时,向Property Observers部分添加了关于属性观察者的说明。

在A Swift Tour章节中添加了关于错误处理的章节。

在弱引用部分更新了数字,以更清楚地显示重新分配过程。

删除了C风格循环,++前缀和后缀运算符以及 - 前缀和后缀运算符的讨论。

除去讨论变量函数参数和curried函数的特殊语法。

2015年10月20日

更新了Swift 2.1。

现在更新了字符串插值和字符串文字部分,现在字符串插值可以包含字符串文字。

添加了Escaping Closures部分,其中包含有关@noescape属性的信息。

使用有关tvOS的信息更新了“声明属性”和“条件编译块”部分。

将有关输入输出参数行为的信息添加到输入输出参数部分。

捕获列表部分添加了关于如何捕获封闭捕获列表中指定的值的信息。

通过可选链接更新了访问属性部分,以阐明如何通过可选链接进行分配。

改进了Autoclosures部分中自动遮挡的讨论。

增加了一个使用?操作员到快速浏览章节。

2015年9月16日

更新了Swift 2.0。

向错误处理章节,Do语句部分,Throw语句部分,Defer语句部分和Try操作符部分添加了有关错误处理的信息。

更新了“表示和抛出错误”部分,现在所有类型都可以符合ErrorType协议。

添加了关于新尝试的信息?关键字转换错误为可选值部分。

将递归枚举的信息添加到“枚举”一章的“递归枚举”部分以及“声明”一章的“任何类型的案例枚举”部分。

将有关API可用性检查的信息添加到“控制流程”一章的“检查API可用性”部分和“语句”一章的“可用性条件”部分。

在控制流章节的Early Exit部分和Statements章节的Guard Statement部分添加了有关新Guard守则的信息。

在协议章节的协议扩展部分添加了有关协议扩展的信息。

将单元测试访问控制的信息添加到“访问控制”章节的“单元测试目标访问级别”部分。

添加关于新的可选模式的信息到模式章节的可选模式部分。

使用有关repeat-while循环的信息更新了Repeat-While部分。

更新了字符串和字符章节,现在String不再符合Swift标准库中的CollectionType协议。

将新的Swift标准库打印(_:separator:terminator)函数的信息添加到Printing Constants和Variables部分。

将有关字符串原始值的枚举案例行为的信息添加到“枚举”章节的隐式分配的原始值部分以及“声明”章节的“原始值类型的案例枚举”部分。

将有关@autoclosure属性(包括其@autoclosure(转义)形式)的信息添加到Autoclosures部分。

使用有关@available和@warn_unused_result属性的信息更新了声明属性部分。

使用有关@convention属性的信息更新了“类型属性”部分。

添加了一个使用多个可选绑定和可选绑定部分的where子句的示例。

在String Literals部分中增加了关于如何在编译时使用+操作符连接字符串文字的信息。

向Metatype Type部分添加了有关比较元类型值并使用它们构造具有初始化表达式的实例的信息。

关于什么时候禁用用户定义的断言,添加了关于调试与断言章节的注释。

在声明属性部分中更新了对@NSManaged属性的讨论,现在该属性可以应用于某些实例方法。

更新了可变参数部分,现在可以在函数的参数列表中的任何位置声明可变参数。

为覆盖失败的初始化程序部分添加了有关非破坏初始化程序如何通过强制解包超类初始化程序的结果来委托给失败的初始化程序的信息。

添加了有关使用枚举案例作为函数的任何类型案例的枚举部分的信息。

将有关显式引用初始化程序的信息添加到“初始化程序表达式”部分。

将编译配置和行控制语句的信息添加到编译器控制语句部分。

在Metatype类型部分添加了关于从元类型值构造类实例的注释。

弱引用部分添加了一条注释,说明弱引用不适合缓存。

在“类型属性”部分中更新了一个注释,提到存储的类型属性是被懒惰地初始化的。

更新了“捕获值”部分以阐明如何在闭包中捕获变量和常量。

更新了声明属性部分以描述您何时可以将@objc属性应用于类。

处理错误部分添加了一条关于执行throw语句性能的注释。在Do语句部分添加了有关do语句的类似信息。

使用有关类,结构和枚举的存储和计算类型属性的信息更新了“类型属性”部分。

使用有关标记的break语句的信息更新Break语句部分。

在Property Observers部分更新了一个注释,以阐明willSet和didSet观察者的行为。

在访问级别部分添加了一条注释,其中提供了有关私有访问范围的信息。

在弱引用部分添加了一条注释,说明垃圾收集系统和ARC之间弱引用的差异。

用更精确的Unicode标量定义更新了字符串文字部分中的特殊字符。

2015-04-09

更新了Swift 1.2。

Swift现在有一个本地Set集合类型。有关更多信息,请参阅集合。

@autoclosure现在是参数声明的一个属性,而不是它的类型。还有一个新的@noescape参数声明属性。有关更多信息,请参阅声明属性。

类型方法和属性现在使用static关键字作为声明修饰符。有关更多信息,请参阅Type Variable Properties。

Swift现在包含as?并作为! failable低调运营商。有关更多信息,请参阅检查协议一致性。

添加了关于字符串索引的新指南部分。

从溢出操作符中删除溢出分区(&/)和溢出余数(&%)操作符。

更新了常量和常量属性声明和初始化的规则。有关更多信息,请参见常量声明。

更新了字符串文字中Unicode标量的定义。请参阅字符串文字中的特殊字符。

更新了范围操作符,注意具有相同开始和结束索引的半开范围将是空的。

已更新的闭包是“参考类型”以阐明变量的捕获规则。

更新了Value Overflow以阐明已签名和未签名整数的溢出行为

更新的协议声明,以澄清协议声明的范围和成员。

更新了定义捕获列表以阐明闭包捕获列表中弱引用和无主引用的语法。

更新后的操作符明确提及自定义操作符支持的字符的示例,例如数学操作符,杂项符号和标志Unicode块中的那些。

现在可以声明常量而不用在本地函数范围内进行初始化。首次使用前,它们必须具有设定值。有关更多信息,请参见常量声明。

在初始化器中,常量属性现在只能赋值一次。有关更多信息,请参阅在初始化期间分配常量属性。

多个可选绑定现在可以作为赋值表达式的逗号分隔列表出现在单个if语句中。有关更多信息,请参阅可选绑定。

可选链表达式必须出现在后缀表达式中。

协议转换不再局限于@objc协议。

可以在运行时失败的类型转换现在使用as?或作为!运算符和保证不会失败的类型转换使用as运算符。有关更多信息,请参阅类型转换运算符。

2014年10月16日

更新了Swift 1.1。

添加了Failable初始化程序的完整指南。

为协议添加了Failable初始化程序要求的说明。

Any类型的常量和变量现在可以包含函数实例。更新了Any和AnyObject的类型转换中的示例,以显示如何在switch语句中检查并转换为函数类型。

具有原始值的枚举现在具有rawValue属性,而不是toRaw()方法,并且具有带有rawValue参数而不是fromRaw()方法的failable初始化程序。有关更多信息,请参阅原始值和枚举与原始值类型的案例。

添加了有关Failable Initializers的新参考部分,可以触发初始化失败。

自定义运算符现在可以包含?字符。更新了操作员参考以描述修改后的规则。从自定义操作符中删除了有效操作符字符集的重复描述。

2014年8月18日

描述Swift 1.0的新文档,这是Apple用于构建iOS和OS X应用程序的新编程语言。

在协议中添加了关于初始化程序要求的新部分。

添加了关于纯类协议的新部分。

断言和先决条件现在可以使用字符串插值。删除了一个相反的说明。

更新了串联字符串和字符部分,以反映字符串和字符值不能再与加法运算符(+)或加法赋值运算符(+ =)组合的事实。这些运算符现在仅用于字符串值。使用String类型的append(_ :)方法将单个Character值附加到字符串的末尾。

将有关可用性属性的信息添加到声明属性部分。

选项不再隐含地评估为真时,如果他们没有价值,为了避免在处理可选的Bool值时出现混淆,则选择不确定。相反,使用==或!=运算符对nil进行显式检查,以确定可选是否包含值。

Swift现在有一个Nil-Coalescing运算符(a ?? b),如果它存在,则展开可选的值,或者如果可选为零,则返回默认值。

更新并扩展了比较字符串部分,以反映和展示字符串和字符比较以及前缀/后缀比较现在基于扩展字形集群的Unicode规范等价。

您现在可以尝试设置属性的值,分配给下标,或通过可选链接调用变异方法或运算符。有关通过可选链访问属性的信息已作相应更新,并且通过可选链调用方法检查方法调用成功的示例已扩展为显示如何检查属性设置是否成功。

通过可选链接添加了关于访问可选类型的下标的新部分。

更新了访问和修改数组部分以注意,您不能再使用+ =运算符将单个项目附加到数组。相反,使用append(_ :)方法,或使用+ =运算符追加单项数组。

添加了一个注释,即范围运算符a ... b和a .. <b的起始值a不能大于最终值b。

重写了继承章节以删除初始化器覆盖的介绍性内容。本章现在更多地关注在子类中添加新功能,以及使用替代来修改现有功能。本章的重写属性获取器和设置器的示例已被重写,以显示如何覆盖描述属性。 (在子类初始化器中修改继承属性的默认值的示例已移至“初始化”一章。)

更新了“初始化程序继承”和“覆盖”部分,以指出现在必须使用覆盖修饰符标记指定初始化程序的覆盖。

更新了必需的初始值设定项部分,注意所需的修改项现在写在所需初始值设定项的每个子类实现之前,并且现在可以通过自动继承的初始值设定项来满足所需初始值设定项的需求。

Infix运算符方法不再需要@infix属性。

前缀和后缀运算符的@prefix和@postfix属性已被替换为前缀和后缀声明修饰符。

当前缀和后缀运算符都应用于相同的操作数时,添加了有关前缀和后缀运算符应用顺序的注释。

复合赋值运算符的运算符函数在定义函数时不再使用@assignment属性。

定义自定义运算符时指定修饰符的顺序已更改。例如,您现在编写前缀运算符而不是运算符前缀。

在声明修饰符中添加了关于动态声明修饰符的信息。

添加了关于类型推理如何与Literals配合使用的信息。

添加了更多关于curried函数的信息。

添加了关于访问控制的新章节。

更新了字符串和字符章节,以反映Swift的字符类型现在代表单个Unicode扩展字形群集的事实。包括关于Extended Grapheme Clusters的新部分以及有关Unicode标量和比较字符串的更多信息。

更新了字符串文字部分,注意字符串文字中的Unicode标量现在写为\ u {n},其中n是一个介于0和10FFFF之间的十六进制数字,即Unicode的代码空间范围。

现在,NSString length属性映射到Swift的本地String类型,如utf16Count,而不是utf16count。

Swift的本地String类型不再具有uppercaseString或lowercaseString属性。字符串和字符中的相应部分已被删除,并且各种代码示例已更新。

添加了关于不带参数标签的初始化参数的新部分。

添加了关于必需的初始化程序的新部分。

添加了关于可选元组返回类型的新部分。

更新了Type Annotations部分,注意可以在一行中使用一个类型注释定义多个相关变量。

@optional,@lazy,@final和@required属性现在是可选的,惰性的,最终的和所需的声明修饰符。

更新了整本书以指代.. <半开范围操作符(而不是“半闭范围操作符”)。

更新了“访问和修改字典”部分以指出Dictionary现在具有布尔isEmpty属性。

澄清定义自定义运算符时可以使用的完整字符列表。

零和布尔人的真假是现在的文字。

Swift的数组类型现在具有完整的值语义。更新了有关集合和数组可变性的信息以反映新方法。还澄清了字符串,数组和字典的赋值和复制行为。

数组类型速记语法现在写为[SomeType]而不是SomeType []。

添加了一个关于字典类型速记语法的新部分,写成[KeyType:ValueType]。

添加了关于集合类型的哈希值的新部分。

Closure表达式的示例现在使用全局排序(_:_ :)函数而不是全局排序(_:_ :)函数来反映新的数组值的语义。

更新了关于结构类型的成员初始化器的信息,以澄清即使结构的存储属性没有默认值,成员结构初始化器也可用。

已更新为.. <<而非半开放范围运算符..

添加了扩展通用类型的示例。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言