[Swift]编程语言5.4:文档修订历史
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/10977730.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
2021-02-17
- 已为Swift 5.4更新。
- 添加了关于结果构建器的信息的“结果构建器”和“结果构建器”部分。
- 在“指针类型”部分添加了“隐式转换”,其中包含有关如何将in-out参数隐式转换为函数调用中不安全指针的信息。
- 更新了可变参数参数和函数声明部分,现在一个函数可以具有多个可变参数。
2020-09-16
- 已为Swift 5.3更新。
- 在尾随闭包部分中添加了有关多个尾随闭包的信息,并在函数调用表达式部分中添加了有关尾随闭包如何与参数匹配的信息。
- 在“使用综合实现采用协议”部分中添加了有关
Comparable
for枚举的综合实现的信息。 - 现在添加了“上下文位置子句”部分,您可以
where
在更多地方编写通用子句。 - 添加了“无主可选引用”部分,其中包含有关将无主引用与可选值一起使用的信息。
@main
在主部分中添加了有关该属性的信息。- 添加
#filePath
到“文字表达”部分,并更新了的讨论#file
。 - 更新了“转义闭包”部分,现在闭包可以
self
在更多场景中隐式引用。 - 现在更新了“使用Do-Catch和Do语句处理错误”部分,因为
catch
子句可以针对多个错误进行匹配。 - 添加了有关的更多信息
Any
,并将其移至新的“任意类型”部分。 - 更新了“属性观察者”部分,现在惰性属性可以具有观察者。
- 更新了协议声明部分,现在枚举成员可以满足协议要求。
- 更新了“存储的变量观察者”和“属性观察者”部分,以描述何时在观察者之前调用getter。
- 更新了“内存安全性”一章,以提及原子操作。
2020-03-24
- 已针对Swift 5.2更新。
- 向“密钥路径表达式”部分添加了有关传递密钥路径而不是闭包的信息。
- 在“特殊名称方法”部分添加了有关语法糖的信息,使类,结构和枚举的实例可以与函数调用语法一起使用。
- 更新了“下标选项”部分,现在下标支持具有默认值的参数。
- 更新了“自我类型”部分,现在
Self
可以在更多上下文中使用。 - 更新了“隐式解包的可选值”部分,以使您可以更清楚地了解隐式解包的可选值可以用作可选值或非可选值。
2019-09-10
- 已为Swift 5.1更新。
- 向“不透明类型”一章添加了有关指定其返回值所遵循的协议的功能的信息,而不是提供特定的命名返回类型。
- 向“属性包装器”部分添加了有关属性包装器的信息。
- 在冻结部分中添加了有关为库演化而冻结的枚举和结构的信息。
- 在“隐式返回”和“简写Getter声明”两节中添加了有关省略函数的信息的函数
return
。 - 将有关在类型上使用下标的信息添加到“类型下标”部分。
- 更新了“枚举案例模式”部分,现在枚举案例模式可以匹配可选值。
- 更新了“结构类型的成员明智的初始化程序”部分,现在成员明智的初始化程序支持省略具有默认值的属性的参数。
- 将有关在运行时通过键路径查找的动态成员的信息添加到dynamicMemberLookup部分。
- 添加
macCatalyst
到“条件编译块”中的目标环境列表中。 - 更新了“自我类型”部分,现在
Self
可用于引用当前类,结构或枚举声明引入的类型。
2019-03-25
- 已为Swift 5.0更新。
- 添加了“扩展字符串定界符”部分,并使用有关扩展字符串定界符的信息更新了“字符串文字”部分。
- 添加了dynamicCallable部分,其中包含有关使用
dynamicCallable
属性将实例作为函数动态调用的信息。 - 添加了“未知”和“切换将来的枚举案例”部分,其中包含有关使用
unknown
switch case属性在switch语句中处理将来的枚举案例的信息。 - 将有关身份密钥路径(
\.self
)的信息添加到“密钥路径表达式”部分。 - 将有关
<
在平台条件下使用小于()运算符的信息添加到“条件编译块”部分。
2018-09-17
- 已为Swift 4.2更新。
- 在迭代枚举用例部分中添加了有关访问所有枚举用例的信息。
- 添加了有关信息
#error
,并#warning
在编译时诊断的声明部分。 - 在和属性下的声明属性部分中添加了有关内联的信息。
inlinable
usableFromInline
- 将有关在运行时按名称查找的成员的信息添加到属性下的“声明属性”部分
dynamicMemberLookup
。 - 在“声明属性”部分中添加了有关
requires_stored_property_inits
和warn_unqualified_access
属性的信息。 - 向“条件编译块”部分添加了有关如何根据Swift编译器版本有条件地编译代码的信息。
#dsohandle
向“文字表达”部分添加了有关的信息。
2018-03-29
- 已为Swift 4.1更新。
- 向“等效运算符”部分添加了有关等效运算符的综合实现的信息。
- 加入约有条件协议一致性的信息扩展声明所述的部分声明章,向有条件符合的协议的部分协议章。
- 在“关联类型的约束”中的“使用协议”部分中添加了有关递归协议约束的信息。
- 向条件编译块添加了有关
canImport()
和targetEnvironment()
条件的信息。
2017-12-04
- 已为Swift 4.0.3更新。
- 更新了“键路径表达式”部分,现在键路径支持下标组件。
2017-09-19
- 已为Swift 4.0更新。
- 在“内存安全性”一章中添加了有关以独占方式访问内存的信息。
- 现在,您可以使用通用子句来约束关联类型,从而添加了带有通用Where
where
子句的关联类型部分。 - 添加了有关多字符串文字的信息字符串文字的部分字符串和字符章节,并以字符串文字的第词法结构篇章。
- 更新了
objc
在声明属性中对属性的讨论,现在可以在更少的地方推断出该属性。 - 现在,下标可以是通用的,添加了“通用下标”部分。
- 更新在讨论协议组合的的部分协议章节,并且在协议组合类型的的部分类型章,现在协议组合物类型可包含一个超类的要求。
- 更新协议扩展的讨论扩展声明,现在
final
不是在他们不允许的。 - 在断言和前提条件部分中添加了有关前提条件和致命错误的信息。
2017-03-27
- 已为Swift 3.1更新。
- 添加了带有通用Where子句的扩展部分,其中包含有关包含需求的扩展的信息。
- 在“循环中”部分中添加了在范围内进行迭代的示例。
- 在“失败的初始化程序”部分中添加了失败的数字转换的示例。
- 向“声明属性”部分添加了有关将该
available
属性与Swift语言版本一起使用的信息。 - 更新了“函数类型”部分中的讨论,以注意在编写函数类型时不允许使用参数标签。
- 更新了“条件编译块”部分中对Swift语言版本号的讨论,现在允许使用可选的补丁程序号。
- 更新了“函数类型”部分中的讨论,现在,Swift可以区分采用多个参数的函数和采用元组类型的单个参数的函数。
- 从“表达式”一章中删除了“动态类型表达式”部分,现在这
type(of:)
是一个Swift标准库函数。
2016-10-27
- 已为Swift 3.0.1更新。
- 更新了“自动引用计数”一章中有关弱引用和无主引用的讨论。
- 添加了有关信息
unowned
,unowned(safe)
以及unowned(unsafe)
在声明修饰符的声明修饰语部分。 - 在任何类型的Any和AnyObject的类型转换部分添加了有关在
Any
期望类型值时使用可选值的注释。 - 更新了“表达式”一章,以分开讨论带括号的表达式和元组表达式。
2016-09-13
- 已为Swift 3.0更新。
- 更新了“函数”一章和“函数声明”部分中对函数的讨论,以注意默认情况下所有参数都获得参数标签。
- 更新了“高级运算符”一章中有关运算符的讨论,现在您将它们实现为类型方法,而不是全局函数。
- 在“访问控制”一章中添加了关于
open
和fileprivate
访问级别修饰符的信息。 - 更新了
inout
“函数声明”部分中的讨论,以注意它出现在参数类型的前面而不是参数名称的前面。 - 更新了转义闭包和自动闭包部分以及“属性”一章中关于
@noescape
和@autoclosure
属性的讨论,因为它们是属性,而不是声明属性。 - 在“高级运算符”一章的“自定义中缀运算符的优先级”部分和“声明”一章的“优先级组声明”部分中添加了有关运算符优先级组的信息。
- 更新整个讨论在使用MacOS的,而不是OS X,
Error
而不是ErrorProtocol
和协议的名称,如ExpressibleByStringLiteral
代替StringLiteralConvertible
。 - 更新了“泛型”一章的“泛型子句”部分和“泛型参数和参数”一章中的讨论,现在,泛型子句写在声明的末尾。
where
- 更新了“转义闭包”部分中的讨论,现在默认情况下闭包是不转义的。
- 更新在讨论可选绑定一节的基础知识章和虽然声明中的部分陈述章,现在
if
,while
和guard
语句中使用的条件下不使用逗号分隔的列表where
条款。 - 添加了有关具有多个模式的开关情况下的信息交换的部分控制流章和switch语句中的部分陈述章。
- 现在,函数参数标签不再是函数类型的一部分,从而更新了“函数类型”部分中对函数类型的讨论。
- 更新协议组合物类型的讨论在协议组合的的部分协议章节和在协议组合类型的的部分类型章以使用新的语法。
Protocol1 & Protocol2
- 更新了“动态类型表达式”部分中的讨论,以将新
type(of:)
语法用于动态类型表达式。 - 更新了对行控制语句的讨论,以使用
#sourceLocation(file:line:)
“行控制语句”部分中的语法。 - 更新了“永不返回的函数”中的讨论,以使用新
Never
类型。 - 在“文字表达”部分中添加了有关游乐场文字的信息。
- 更新了“ In-Out参数”部分中的讨论,以注意只有不转义的闭包才能捕获In-out参数。
- 更新了“默认参数值”部分中有关默认参数的讨论,现在不能在函数调用中对它们进行重新排序。
- 在“属性”一章中更新了属性参数以使用冒号。
- 向“重新抛出函数和方法”部分添加了有关在重新抛出函数的catch块内抛出错误的信息。
- 向“选择器表达式”部分添加了有关访问Objective-C属性的getter或setter的选择器的信息。
- 向“类型别名声明”部分添加了有关通用类型别名以及在协议内部使用类型别名的信息。
- 更新了“函数类型”部分中对函数类型的讨论,以注意需要在参数类型周围加上括号。
- 更新了属性章节需要注意的是
@IBAction
,@IBOutlet
和@NSManaged
属性意味着@objc
属性。 @GKInspectable
在“声明属性”部分中添加了有关该属性的信息。- 更新了“可选协议要求”部分中对可选协议要求的讨论,以澄清它们仅在与Objective-C互操作的代码中使用。
let
从“函数声明”部分中删除了有关在函数中显式使用in参数的讨论。- 现在,已从Swift标准库中删除了
Boolean
协议,从“语句”一章中删除了对协议的讨论。 - 更正了“声明属性”部分中对
@NSApplicationMain
属性的讨论。
2016-03-21
- 已为Swift 2.2更新。
- 向“条件编译块”部分添加了有关如何根据所使用的Swift版本有条件地编译代码的信息。
- 在“显式成员表达式”部分中添加了有关如何区分名称仅由其参数名称不同的方法或初始化程序的信息。
#selector
向“选择器表达式”部分添加了有关Objective-C选择器语法的信息。- 更新了有关关联类型的讨论,以
associatedtype
在“关联类型和协议关联类型声明”部分中使用关键字。 nil
在“失败的初始化程序”部分中,有关在实例完全初始化之前返回的初始化程序的更新信息。- 在“比较运算符”部分中添加了有关比较元组的信息。
- 向“关键字和标点”部分添加了有关使用关键字作为外部参数名称的信息。
- 更新了“声明属性”部分中对
@objc
属性的讨论,以注意枚举和枚举案例可以使用此属性。 - 更新了“运算符”部分,其中讨论了包含点的自定义运算符。
- 在“重新抛出函数和方法”部分添加了一条注释,即重新抛出函数不能直接抛出错误。
- 向“属性观察者”部分添加了一条注释,该注释关于在将属性作为输入输出参数传递时调用属性观察器。
- 在“快速浏览”一章中增加了有关错误处理的部分。
- 更新了“弱引用”部分中的数字,以更清楚地显示重新分配过程。
- 删除了有关C样式
for
循环,++
前缀和后缀运算符以及--
前缀和后缀运算符的讨论。 - 删除了对可变函数参数和咖喱函数的特殊语法的讨论。
2015-10-20
- 已为Swift 2.1更新。
- 现在更新了“字符串插值”和“字符串文字”部分,因为字符串插值可以包含字符串文字。
- 添加了有关属性的信息的“转义闭包”部分
@noescape
。 - 使用有关tvOS的信息更新了声明属性和条件编译块部分。
- 将有关输入输出参数行为的信息添加到“输入输出参数”部分。
- 向“捕获列表”部分添加了有关如何捕获闭包捕获列表中指定的值的信息。
- 更新了“通过可选链接访问属性”部分,以阐明通过可选链接进行分配的行为。
- 改进了“自动关闭”部分中对自动关闭的讨论。
??
在“快速浏览”一章中添加了一个使用运算符的示例。
2015-09-16
- 已为Swift 2.0更新。
- 在“错误处理”一章,“执行语句”部分,“抛出语句”部分,“延迟语句”部分和“尝试运算符”部分中添加了有关错误处理的信息。
- 更新了“表示和抛出错误”部分,现在所有类型都可以符合
ErrorType
协议。 - 将有关新
try?
关键字的信息添加到“将错误转换为可选值”部分。 - 添加了有关递归枚举的信息递归枚举的第枚举章和枚举与任何类型的案件中的部分声明篇章。
- 在“控制流”一章的“检查API可用性”部分和“语句”一章的“可用性条件”部分中添加了有关API可用性检查的信息。
- 添加了有关新的信息
guard
语句将提前退出的部分控制流章和卫队声明中的部分陈述章。 - 在协议一章的协议扩展部分中添加了有关协议扩展的信息。
- 在“访问控制”一章的“单元测试目标的访问级别”部分中添加了有关单元测试的访问控制的信息。
- 在“模式”一章的“可选模式”部分中添加了有关新的可选模式的信息。
- 使用关于-循环的信息更新了Repeat-While部分。
repeat
while
- 更新了“字符串和字符”一章,现在
String
不再符合CollectionType
Swift标准库中的协议。 print(_:separator:terminator)
在“打印常量和变量”部分中添加了有关新的Swift标准库函数的信息。- 将有关具有
String
原始值的枚举案例的行为的信息添加到“枚举”一章的“隐式分配的原始值”部分和“声明”一章的“具有原始值类型的案例的枚举”部分。 - 将有关
@autoclosure
属性的信息(包括其@autoclosure(escaping)
形式)添加到“自动闭合”部分。 - 使用和属性的信息更新了声明属性部分。
@available
@warn_unused_result
- 使用有关属性的信息更新了“类型属性”部分
@convention
。 where
向“可选绑定”部分添加了一个将多个可选绑定与一个子句一起使用的示例。- 向“字符串文字”部分添加了有关
+
在编译时如何使用运算符连接字符串文字的信息。 - 向“元类型类型”部分添加了有关比较元类型值以及使用它们来构造带有初始化表达式的实例的信息。
- 在“使用断言调试”部分中添加了有关何时禁用用户定义的断言的注释。
- 现在,可以将属性应用于某些实例方法,从而
@NSManaged
在“声明属性”部分中更新了对该属性的讨论。 - 更新了可变参数参数部分,现在可变参数可以在函数的参数列表中的任何位置声明。
- 向“覆盖失败的初始化程序”部分添加了有关如何通过强制展开超类的初始化程序的结果来将不失败的初始化程序委派给可失败的初始化程序的信息。
- 在使用任何类型的案例进行枚举部分中添加了有关使用枚举案例作为函数的信息。
- 向初始化程序表达式部分添加了有关显式引用初始化程序的信息。
- 向“编译器控制语句”部分添加了有关构建配置和行控制语句的信息。
- 在“元类型类型”部分中添加了有关从元类型值构造类实例的注释。
- 在弱引用部分中添加了有关弱引用不适合缓存的注释。
- 更新了“类型属性”部分中的注释,以提及已延迟存储类型属性的初始化。
- 更新了“捕获值”部分,以阐明如何在闭包中捕获变量和常量。
- 更新了“声明属性”部分,以描述何时可以将
@objc
属性应用于类。 - 在“处理错误”部分中添加了有关执行
throw
语句性能的注释。do
在“执行语句”部分中添加了有关该语句的类似信息。 - 更新了“类型属性”部分,其中包含有关类,结构和枚举的已存储和计算的类型属性的信息。
- 使用有关标记的中断语句的信息更新了“中断语句”部分。
- 更新了“属性观察者”部分中的注释,以阐明
willSet
和didSet
观察者的行为。 - 在“访问级别”部分添加了一条注释,其中包含有关
private
访问范围的信息。 - 在“弱引用”部分中添加了有关垃圾收集系统与ARC的弱引用之间的区别的注释。
- 更新了“字符串文字中的特殊字符”部分,以更精确的Unicode标量定义。
2015-04-08
- 已为Swift 1.2更新。
- Swift现在具有本机
Set
集合类型。有关更多信息,请参见Sets。 @autoclosure
现在是参数声明的属性,而不是其类型。还有一个新的@noescape
参数声明属性。有关更多信息,请参见声明属性。- 类型方法和属性现在使用
static
关键字作为声明修饰符。有关更多信息,请参见类型变量属性。 - Swift现在包括
as?
和as!
失败的向下运算符。有关更多信息,请参见检查协议一致性。 - 添加了有关字符串索引的新指南部分。
- 从溢出运算符中删除了溢出除法运算符(
&/
)和剩余余数(&%
)运算符。 - 更新了常量和常量属性声明和初始化的规则。有关更多信息,请参见常量声明。
- 更新了字符串文字中Unicode标量的定义。请参见字符串文字中的特殊字符。
- 更新了范围运算符,以注意具有相同的开始和结束索引的半开范围将为空。
- 更新的闭包是参考类型,以阐明变量的捕获规则。
- 更新了值溢出以阐明有符号和无符号整数的溢出行为
- 更新了协议声明以阐明协议声明的范围和成员。
- 更新了“定义捕获列表”以澄清闭包捕获列表中弱引用和无主引用的语法。
- 更新了运算符,以明确提及自定义运算符支持的字符示例,例如数学运算符,其他符号和Dingbats Unicode块中的字符。
- 现在可以声明常量,而无需在局部函数范围内初始化。首次使用前,它们必须具有设定值。有关更多信息,请参见常量声明。
- 在初始化程序中,常量属性现在只能分配一次值。有关更多信息,请参见初始化期间分配常量属性。
- 现在,多个可选绑定可以
if
作为赋值表达式的逗号分隔列表出现在单个语句中。有关更多信息,请参见可选绑定。 - 一个可选的-链接表达必须后缀表达式中出现。
- 协议类型转换不再局限于
@objc
协议。 - 现在,可以在运行时失败的类型转换使用
as?
oras!
运算符,保证不会失败的类型转换使用as
运算符。有关更多信息,请参见Type-Casting运算符。
2014-10-16
- 已为Swift 1.1更新。
- 为失败初始化器添加了完整指南。
- 添加了对协议的初始化程序失败要求的描述。
- 类型的常量和变量
Any
现在可以包含函数实例。更新了Any和AnyObject的类型转换中的示例,以显示如何在switch
语句内检查和转换为函数类型。 - 现在,具有原始值的枚举具有
rawValue
属性而不是toRaw()
方法,并且具有rawValue
参数而不是fromRaw()
方法的失败初始化器。有关更多信息,请参见带有原始值类型的个案的原始值和枚举。 - 添加了有关“失败的初始化器”的新参考部分,该部分可能会触发初始化失败。
- 现在,自定义运算符可以包含该
?
字符。更新了《运营商》参考以描述修订后的规则。从“自定义运算符”中删除了一组有效的运算符字符的重复描述。
2014-08-18
- 新文档描述了Swift 1.0,这是Apple用于构建iOS和OS X应用程序的新编程语言。
- 添加了有关协议中的初始化程序要求的新部分。
- 添加了有关仅类协议的新部分。
- 断言和前提条件现在可以使用字符串插值。删除了相反的注释。
- 更新了“连接字符串和字符”部分,以反映
String
和Character
值不再可以与加法运算符(+
)或加法赋值运算符(+=
)组合的事实。这些运算符现在仅与String
值一起使用。使用String
类型的append(_:)
方法将单个Character
值附加到字符串的末尾。 availability
在“声明属性”部分中添加了有关该属性的信息。- 可选值不再隐式评估
true
它们何时具有值以及false
何时不具有值,以避免在处理可选Bool
值时造成混淆。相反,请nil
使用==
或!=
运算符进行显式检查,以找出可选值是否包含值。 - Swift现在有一个Nil-Coalescing运算符(),如果存在可选值,它将解开该可选值的值;如果可选值是,则返回一个默认值。
a ?? b
nil
- 更新并扩展了“比较字符串”部分,以反映和证明字符串和字符比较以及前缀/后缀比较现在基于扩展字素簇的Unicode规范对等。
- 现在,您可以尝试设置属性的值,分配给下标,或通过Optional Chaining调用变异方法或运算符。有关通过可选链接访问属性的信息已相应更新,并且扩展了“通过可选链接的调用方法”中检查方法调用成功的示例,以显示如何检查属性设置是否成功。
- 添加了有关通过可选链接访问可选类型下标的新部分。
- 更新了“访问和修改数组”部分,以注意您不能再使用
+=
运算符将单个项目附加到数组。而是使用append(_:)
方法,或在+=
运算符后附加一个单项数组。 - 添加了一条说明该初始值
a
的范围运营商a...b
和a..<b
不得超过终值越大b
。 - 重新编写了“继承”一章,以删除其对初始化器覆盖的介绍。现在,本章将重点更多地放在子类中的新功能上,以及使用覆盖对现有功能进行的修改。本章的重写属性Getter和Setter的示例已被重写,以显示如何重写
description
属性。(在子类初始化程序中修改继承属性的默认值的示例已移至“初始化”一章。) - 更新了“初始化程序的继承和覆盖”部分,以注意,现在必须使用
override
修饰符标记指定的初始化程序的覆盖。 - 更新了“必需的初始化程序”部分,以注意,
required
现在已在所需的初始化程序的每个子类实现之前编写了修饰符,并且现在可以通过自动继承的初始化程序来满足对所需初始化程序的要求。 - 中缀运算符方法不再需要该
@infix
属性。 - 前缀和后缀运算符的
@prefix
和@postfix
属性已由和声明修饰符代替。prefix
postfix
- 添加了有关在将前缀和后缀运算符都应用于同一操作数时前缀和后缀运算符的应用顺序的说明。
- 复合分配的运算符功能
@assignment
定义函数时,运算符不再使用该属性。 - 定义“自定义运算符”时指定修饰符的顺序已更改。例如,您现在编写而不是。
prefix operator
operator prefix
- 添加了有关信息
dynamic
的申报修改的声明修饰语。 - 添加了有关类型推断如何与Literals一起使用的信息。
- 添加了有关咖喱函数的更多信息。
- 添加了有关访问控制的新章节。
- 更新了“字符串和字符”一章,以反映以下事实:Swift的
Character
类型现在代表单个Unicode扩展字素簇。包括有关扩展字素簇的新部分,以及有关Unicode标量值和比较字符串的更多信息。 - 更新了字符串文字部分,以注意,字符串文字中的Unicode标量现在写为
\u{n}
,其中n
是0到10FFFF(Unicode的代码空间范围)之间的十六进制数。 NSString
length
现在,该属性被映射为Swift的本机String
类型utf16Count
,而不是utf16count
。- Swift的本机
String
类型不再具有uppercaseString
orlowercaseString
属性。字符串和字符中的相应部分已删除,并且各种代码示例已更新。 - 添加了有关不带参数标签的初始化参数的新部分。
- 添加了有关“必需的初始化程序”的新部分。
- 添加了有关可选元组返回类型的新部分。
- 更新了“类型注释”部分,以注意可以用一个类型注释在一行上定义多个相关变量。
- 在
@optional
,@lazy
,@final
,和@required
属性现在是optional
,lazy
,final
,和required
的声明修饰语。 - 更新了整本书,将其
..<
称为“半开范围算子”(而不是“半闭范围算子”)。 - 更新了“访问和修改字典”部分,以注意
Dictionary
现在具有布尔isEmpty
属性。 - 澄清了定义“自定义运算符”时可以使用的完整字符列表。
nil
和布尔true
和false
现在面值。- Swift的
Array
类型现在具有全值语义。更新了有关集合和数组可变性的信息,以反映新方法。还阐明了字符串数组和字典的分配和复制行为。 - 数组类型速记语法现在写为
[SomeType]
而不是SomeType[]
。 - 添加了有关“字典类型速记语法”的新部分,其写为。
[KeyType: ValueType]
- 添加了有关集类型的哈希值的新部分。
- 现在,闭包表达式的示例使用全局
sorted(_:_:)
函数而不是全局sort(_:_:)
函数来反映新的数组值语义。 - 更新了有关结构类型的成员明智的初始化程序的信息,以澄清即使结构的存储属性没有默认值,也可以使成员明智的结构初始化程序可用。
- 已更新为
..<
,而不是..
对半开区间操作。 - 添加了扩展泛型类型的示例。
分类:
Swift5.4 语言指南
标签:
swift
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)