рд╣рд╛рдп рд╣рдорд░! рд╕реНрд╡рд┐рдлреНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдЖрдИрдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рдХрд╛рд░рдг рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╕рднреА рдХреЗ рд▓рд┐рдП рд░реБрдЪрд┐ рд░рдЦрддрд╛ рд╣реИредрдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╕реНрд╡рд┐рдлреНрдЯ рд╕рдВрд╕реНрдХрд░рдг 5.3 рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдирдпрд╛ рд╣реИредрдПрдХрд╛рдзрд┐рдХ рдЕрдиреБрдЧрд╛рдореА рдХреНрд▓реЛрдЬрд░
рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг ( SE-0279 ) рдкрд░рд┐рдорд┐рдд рдХреНрд▓реЛрдЬрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдХрдИ рдХреНрд▓реЛрдЬрд░ рдХреЛ рдлрд╝рдВрдХреНрд╢рди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдзрд┐рдХ рдкрдардиреАрдп рддрд░реАрдХреЗ рд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреЛрд╖реНрдардХреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИредimport Foundation
func load(url: String, success: (Data) -> Void, failure: (Error) -> Void) {
}
load(url: "someURL", success: { data in }, failure: { error in })
load(url: "someURL") { (data) in
} failure: { (error) in
}
2 рдХреЙрд▓ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░, рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдиреЗрддреНрд░рд╣реАрди рджреВрд╕рд░реЗ рдХреЛ рдереЛрдбрд╝рд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИредрдорд▓реНрдЯреА-рдкреИрдЯрд░реНрди рдХреИрдЪ рдХреНрд▓реЙрд╕
рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдПрдХ рдХреИрдЪ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХреИрдЪ рдХреНрд▓реЙрдЬ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдкреИрдЯрд░реНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреИрдЪ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯреНрд╕ рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рд╕реЗ рдиреЗрд╕реНрдЯреЗрдб рдФрд░ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЛрдб ( SE-0276 ) рдмрдврд╝реЗрдЧрд╛ редрдХреИрдЪ рдЖрдЗрдЯрдо рдЕрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рд╕реНрд╡рд┐рдЪ рдХреЗ рд░реВрдк рдореЗрдВ, рдХреИрдЪ рдмреЙрдбреА рдореЗрдВ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЛ рдмрд╛рдБрдзрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдХреЙрдорд╛-рд╕реЗрдкрд░реЗрдЯреЗрдб рд▓рд┐рд╕реНрдЯ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВредenum NetworkError: Error {
case failure, timeout
}
func networkCall(){
do{
try someNetworkCall()
} catch NetworkError.timeout{
print("timeout")
} catch NetworkError.failure{
print("failure")
}
}
func networkCall(){
do{
try someNetworkCall()
} catch NetworkError.failure, NetworkError.timeout {
print("handle for both")
}
}
Enums рдХреЗ рд▓рд┐рдП Synthesized рддреБрд▓рдирд╛рддреНрдордХ рдЕрдиреБрд░реВрдкрддрд╛
рдЕрдм рддрдХ, рдПрдХ рдЧрдгрдирд╛ рдХреЗ 2 рддрддреНрд╡реЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдХреБрдЫ рдРрд╕рд╛ рдирд╣реАрдВ рдерд╛ рдЬреЛ "рд╕реБрдЦрдж" рдмрд╛рдд рд╣реЛрдЧреАред рдпрд╣ рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛ рдХрд┐ рддреБрд▓рдирд╛рддреНрдордХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦреЗрдВ рдФрд░ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдореВрд▓ рдорд╛рди рджреВрд╕рд░реЗ рд╕реЗ рдХрдо рд╣реИредрдЕрдм рд╕реНрд╡рд┐рдлреНрдЯ ( SE-0266 ) рдЖрдкрдХреЛ рдЗрди рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ "рдкрд╕реАрдирд╛" рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЖрдкрдХреЗ рдЧрдгрди рдХреЗ рд╕рдорд╛рди рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдпрджрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдХреА рдШреЛрд╖рдгрд╛ рдХреЗ рдЕрд░реНрде рдХреНрд░рдо рдореЗрдВ рддреБрд▓рдирд╛ рдХреА рдЬрд╛рдПрдЧреАредenum Brightness: Comparable {
case low(Int)
case medium
case high
}
([.high, .low(1), .medium, .low(0)] as [Brightness]).sorted()
рд╕реЗрд▓реНрдлреА рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдЕрдм рд╕реЗ, рд╕реНрд╡ рдХреЛ рдЙрди рдЬрдЧрд╣реЛрдВ рдкрд░ рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ ( рдПрд╕рдИ -0269 )ред рдкрд╣рд▓реЗ, рдЬрдм рд╣рдо рдмрд╛рд╣рд░реА рджрд╛рдпрд░реЗ рд╕реЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкрдХрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рд╕реНрд╡рдпрдВ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛редstruct OldView: View {
var body: some View {
Button(action: {
self.sayHello()
}) {
Text("Press")
}
}
func sayHello() {}
}
struct NewView: View {
var body: some View {
Button {
sayHello()
} label: {
Text("Press")
}
}
func sayHello(){}
}
рдЬреЗрдиреЗрд░рд┐рдХ рдореЗрдВ рдХрд╣рд╛рдВ
рднрд╛рд╖рд╛ рдХреЗ рдПрдХ рдирдП рд╕рдВрд╕реНрдХрд░рдг ( SE-0267 ) рдиреЗ рдЬреЗрдиреЗрд░рд┐рдХ рдкреНрд░рдХрд╛рд░ рдФрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдЕрдВрджрд░ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреЗрд╢ рдХреАредstruct Stack<Element> {
private var array = [Element]()
mutating func push(_ obj: Element) {
array.append(obj)
}
mutating func pop(_ obj: Element) -> Element? {
array.popLast()
}
}
extension Stack {
func sorted() -> [Element] where Element: Comparable {
array.sorted()
}
}
рд╕реНрдЯреИрдХ рдореЗрдВ рдПрдХ рдирдИ рд╕реЙрд░реНрдЯ рдХреА рдЧрдИ () рд╡рд┐рдзрд┐ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрдм рд╕реНрдЯреИрдХ рдХреЗ рдЕрдВрджрд░ рдХреЗ рддрддреНрд╡ рддреБрд▓рдирд╛рддреНрдордХ рд╣реЛрддреЗ рд╣реИрдВредрдирдпрд╛ рдкреНрд░рдХрд╛рд░ рдлрд╝реНрд▓реЛрдЯ 16
рдкреНрд░рд╕реНрддреБрдд рдлреНрд▓реЛрдЯ 16 рдЕрд░реНрдз рд╕рдЯреАрдХ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ ( рдПрд╕рдИ -0277 )ред рд╣рд╛рд▓ рдХреЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдорд╢реАрди рд╕реАрдЦрдиреЗ рдХреЗ рдЖрдЧрдорди рдХреЗ рд╕рд╛рде, рдпрд╣ рдХреЗрд╡рд▓ рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдРрдкреНрдкрд▓ рдХреА рдорд╣рддреНрд╡рд╛рдХрд╛рдВрдХреНрд╖рд╛рдУрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рдлреНрд▓реЛрдЯ 16 рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдорддреМрд░ рдкрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдореЛрдмрд╛рдЗрд▓ GPU рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ ML рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╕реНрдХреЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдкреАрдбрд╝рд┐рдд рдкреНрд░рд╛рд░реВрдк рдХреЗ рд░реВрдк рдореЗрдВредlet f16: Float16 = 7.29
рд╕реНрд╡рд┐рдлреНрдЯ 5.3 рдиреЗ рд╕реНрд╡рд┐рдлреНрдЯ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ (рдПрд╕рдкреАрдПрдо) рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рдВрд╡рд░реНрджреНрдзрди рдкреЗрд╢ рдХрд┐рдП рд╣реИрдВред рдЙрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред- SE-0271 (рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рд░рд┐рд╕реЛрд░реНрд╕реЗрдЬ) SPM рдХреЛ рдЗрдореЗрдЬ, рдСрдбрд┐рдпреЛ, JSON рдФрд░ рдЕрдиреНрдп рдЬреИрд╕реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╕рдорд╛рд╣рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
- SE-0272 (рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдмрд╛рдЗрдирд░реА рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА) рдПрд╕рдкреАрдПрдо рдХреЛ рдореМрдЬреВрджрд╛ рд╕реНрд░реЛрдд рдкреИрдХреЗрдЬ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдмрд╛рдЗрдирд░реА рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдлрд╛рдпрд░рдмрд╕ рдЬреИрд╕реЗ рд╕рд╛рдЭрд╛, рдмрдВрдж рд╕реНрд░реЛрдд рдПрд╕рдбреАрдХреЗ рдХреЛ рдЕрдм рдПрд╕рдкреАрдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- SE-0273 (рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рд╕рд╢рд░реНрдд рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрднрд░рддрд╛) рдЖрдкрдХреЛ рд▓рдХреНрд╖реНрдп рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рд╣реЛред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рди рдХрд░рддреЗ рд╕рдордп рд╡рд┐рд╢реЗрд╖ рдЕрддрд┐рд░рд┐рдХреНрдд рдврд╛рдВрдЪреЗ рдХреЛ рдирд╛рдорд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- SE-0278 рдЖрдкрдХреЛ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрд╣ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг 5.3 рдиреЗ рдХреБрдЫ рдЕрдЪреНрдЫреЗ рдирд╡рд╛рдЪрд╛рд░ рдкреЗрд╢ рдХрд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рд╕рдордп рдХреЗ рд╕рд╛рде рдЙрдард╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред