ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ - ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ°, ΡΡΡΡΠΊΡΡΡΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΈ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π»ΡΠ±ΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½Ρ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ.
Β
ΠΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΠ΅ ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡ ΠΎΠΆΠΈ ΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. Π ΠΎΡΠ»ΠΈΡΠΈΠΈ ΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² Π² Objective-C, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ Π² Swift Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠΎΠ»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² - ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π½ΠΎΠ²ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΠΈΠΏΠ° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π² ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π·.
ΠΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ²ΡΡ ΡΠΈΠΏΠΎΠ² ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ Π΄Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ²ΠΎΠ΄ΡΡ Π»ΡΠ±ΡΡ ΡΠΈΡΡΠΊΡ ΠΏΡΡΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° Π±ΡΠ΄Π΅Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½. ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠΈΡΠ°ΠΉΡΠ΅ ΠΠ΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π½Π°ΡΠ°Π»ΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ²ΠΎΠΉΡΡΠ² Ρ ΡΠ°Π½Π΅Π½ΠΈΡ
ΠΠ»Π°ΡΡΡ ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Ρ Π²ΡΠ΅Ρ Β ΡΠ²ΠΎΠΉΡΡΠ² Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ° ΠΈΠ»ΠΈ ΡΡΡΡΠΊΡΡΡΡ. Π‘Π²ΠΎΠΉΡΡΠ²Π° Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΡΠ°Π²Π»Π΅Π½Ρ Π² Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π²Π½ΡΡΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΠΈΠ»ΠΈ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π΅ΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°. ΠΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π±ΡΠ΄ΡΡ ΠΎΠΏΠΈΡΠ°Π½Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ΅ΠΊΡΠΈΡΡ .
ΠΠ°ΠΌΠ΅ΡΠΊΠ°
ΠΠΎΠ³Π΄Π° Π²Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ΅, ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ, Π±Π΅Π· Π²ΡΠ·ΠΎΠ²Π° Π½Π°Π±Π»ΡΠ΄Π°ΡΠ΅Π»Π΅ΠΉ.
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. Π ΡΠ°ΠΌΠΎΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ²ΠΎΠ΅ΠΉ ΡΠΎΡΠΌΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° init:
init() {
// ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΡΡ
}
ΠΡΠΈΠΌΠ΅Ρ Π½ΠΈΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½ΠΎΠ²ΡΡ ΡΡΡΡΠΊΡΡΡΡ Fahrenheit Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π² Π€Π°ΡΠ΅Π½Π³Π΅ΠΉΡΠ°Ρ . Π‘ΡΡΡΠΊΡΡΡΠ° Fahrenheit ΠΈΠΌΠ΅Π΅Ρ Π²ΡΠ΅Π³ΠΎΒ ΠΎΠ΄Π½ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ, temperature ΡΠΈΠΏΠ° Double:
struct Fahrenheit {
var temperature: Double
init() {
temperature = 32.0
}
}
var f = Fahrenheit()
print("ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ \(f.temperature)Β° ΠΏΠΎ Π€Π°ΡΠ΅Π½Π³Π΅ΠΉΡΡ")
// ΠΡΠ²Π΅Π΄Π΅Ρ "ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 32.0Β° ΠΏΠΎ Π€Π°ΡΠ΅Π½Π³Π΅ΠΉΡΡ"
Π‘ΡΡΡΠΊΡΡΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ, init, Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ Ρ ΡΠ°Π½ΠΈΠΌΡΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ ΡΠ°Π²Π½ΡΡ 32.0Β (ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ° Π·Π°ΠΌΠ΅ΡΠ·Π°Π½ΠΈΡ Π²ΠΎΠ΄Ρ ΠΏΠΎ Π€Π°ΡΠ΅Π½Π³Π΅ΠΉΡΡ).
ΠΠ΅ΡΠΎΠ»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ΅, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅. Π’Π°ΠΊ ΠΆΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°. ΠΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π½Π°ΠΏΠΈΡΠ°Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ.
ΠΠ°ΠΌΠ΅ΡΠΊΠ°
ΠΡΠ»ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· Π±Π΅ΡΠ΅Ρ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠΎ Π»ΡΡΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ΅. ΠΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅, Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π±Π»ΠΈΠΆΠ΅ ΠΊ ΡΠ²ΠΎΠ΅ΠΌΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ. Π’Π°ΠΊ Π΄Π΅Π»Π°ΡΡ, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ Π² Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΡΠΎΠΉ ΠΈ ΠΊΡΠ°ΡΠΊΠΎΠΉ ΡΠΎΡΠΌΠ΅, ΠΈ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΈΠΏ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈΠ· Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°ΠΊ ΠΆΠ΅ Π΄Π°ΡΡ Π²Π°ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠ»ΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°, ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Π΄Π°Π»Π΅Π΅ Π² ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΡΡΠΊΡΡΡΡ Fahrenheit Π² Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΎΡΠΌΠ΅, ΡΠΊΠ°Π·Π°Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° temperature, Π² ΠΌΠ΅ΡΡΠ΅ Π΅Π³ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ:
struct Fahrenheit {
var temperature = 32.0
}
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²Ρ ΠΎΠ΄Π½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈΒ ΡΠ²ΠΎΠΉΡΡΠ²Β ΠΈΠ»ΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΡ Β ΡΠ²ΠΎΠΉΡΡΠ² Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π΄Π°Π»Π΅Π΅.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°, Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΈ ΠΈΠΌΠ΅Π½ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ΅ ΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠ°ΠΊ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΡΡΠΊΡΡΡΡ Celsius, ΠΊΠΎΡΠΎΡΠ°Ρ Ρ ΡΠ°Π½ΠΈΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ Π² Π¦Π΅Π»ΡΡΠΈΡΡ . Π‘ΡΡΡΠΊΡΡΡΠ° Celsius ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Π΄Π²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° init(fromFahrenheit: ) ΠΈ init(fromKelvin: ), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ½ΠΎΠΉ ΡΠΊΠ°Π»Ρ:
struct Celsius {
var temperatureInCelsius: Double
init(fromFahrenheit fahrenheit: Double) {
temperatureInCelsius = (fahrenheit - 32.0) / 1.8
}
init(fromKelvin kelvin: Double) {
temperatureInCelsius = kelvin - 273.15
}
}
let boilingPointOfWater = Celsius(fromFahrenheit: 212.0)
// boilingPointOfWater.temperatureInCelsius is 100.0
let freezingPointOfWater = Celsius(fromKelvin: 273.15)
// freezingPointOfWater.temperatureInCelsius is 0.0
ΠΠ΅ΡΠ²ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ fromFahrenheit ΠΈ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ fahrenheit. ΠΡΠΎΡΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ fromKelvin ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ kelvin. ΠΠ±Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΡΡΡ ΠΈΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π¦Π΅Π»ΡΡΠΈΡ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ temperatureInCelsius.
ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²
ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠΌΠ΅Π½Π° Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²Π½ΡΡΡΠΈ ΡΠ΅Π»Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠ΅ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°.
ΠΠ΄Π½Π°ΠΊΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π΄ΠΎ ΠΊΡΡΠ³Π»ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΈΠΌΠ΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎΡΡΠΎΠΌΡ ΠΈΠΌΠ΅Π½Π° ΠΈ ΡΠΈΠΏΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΠΈΠ³ΡΠ°ΡΡ Π²Π°ΠΆΠ½ΡΡ ΡΠΎΠ»Ρ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΈ Π³Π΄Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½. ΠΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ Swift ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, Π΅ΡΠ»ΠΈ Π²Ρ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π΅ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ ΡΠ²ΠΎΠ΅ Π²Π½Π΅ΡΠ½Π΅Π΅ ΠΈΠΌΡ.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΡΡΠΊΡΡΡΡ Color Ρ ΡΡΠ΅ΠΌΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ red, green, blue. ΠΡΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΡ 0.0 Π΄ΠΎ 1.0, Π΄Π»Ρ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ²Π΅ΡΠ°.
Color ΠΈΠΌΠ΅Π΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Ρ ΡΡΠ΅ΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ red, green, blue ΡΠΈΠΏΠ° Double(ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠ²Π΅ΡΠ° ΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ, Π·Π΅Π»Π΅Π½ΠΎΠ³ΠΎ, ΡΠΈΠ½Π΅Π³ΠΎ). Π’Π°ΠΊΠΆΠ΅ Color ΠΈΠΌΠ΅Π΅Ρ Π²ΡΠΎΡΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ white, ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ΅Π½ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠ²Π΅ΡΠ°.
struct Color {
let red, green, blue: Double
init(red: Double, green: Double, blue: Double) {
self.red = red
self.green = green
self.blue = blue
}
init(white: Double) {
red = white
green = white
blue = white
}
}
ΠΠ±Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Color, ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°:
let magenta = Color(red: 1.0, green: 0.0, blue: 1.0)
let halfGray = Color(white: 0.5)
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΈΠΌΠ΅Π½. ΠΠ½Π΅ΡΠ½ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ΅, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΠΈΡ , ΡΠΎ Π²ΡΡΠΊΠΎΡΠΈΡ ΠΎΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ:
let veryGreen = Color(0.0, 1.0, 0.0)
// ΡΡΠΎΡ ΠΊΠΎΠ΄ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π·Π΄Π΅ΡΡ Π½Π΅Ρ Π²Π½Π΅ΡΠ½ΠΈΡ
ΠΈΠΌΠ΅Π½
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Π±Π΅Π· Π²Π½Π΅ΡΠ½ΠΈΡ ΠΈΠΌΠ΅Π½
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° Π΄Π»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π½Π°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΠ΅ (_) Π²ΠΌΠ΅ΡΡΠΎ ΡΠ²Π½ΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΠΎΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π΄Π»Ρ Celsius, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ ΡΠ°Π½Π΅Π΅, Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠΌ, Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Celsius Ρ ΡΠΈΠΏΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ Double ΡΠΎΠ»ΡΠΊΠΎ ΡΠΆΠ΅ ΠΏΠΎ ΡΠΊΠ°Π»Π΅ Π¦Π΅Π»ΡΡΠΈΡ:
struct Celsius {
var temperatureInCelsius: Double
init(fromFahrenheit fahrenheit: Double) {
temperatureInCelsius = (fahrenheit - 32.0) / 1.8
}
init(fromKelvin kelvin: Double) {
temperatureInCelsius = kelvin - 273.15
}
init(_ celsius: Double) {
temperatureInCelsius = celsius
}
}
let bodyTemperature = Celsius(37.0)
// bodyTemperature.temperatureInCelsius is 37.0
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Celsius(37.0), ΡΡΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎ ΠΈ Π±Π΅Π· Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°. ΠΠΎΡΡΠΎΠΌΡ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ init(_ celsius: Double), Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π±Π΅Π·ΡΠΌΡΠ½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° Double.
ΠΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΏΡ ΡΠ²ΠΎΠΉΡΡΠ²
ΠΡΠ»ΠΈ Π²Π°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΠΈΠΏ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠΌΠ΅Π΅Ρ βΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡβ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π΅ΠΌΡ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΈΠΌΠ΅ΡΡ βΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡβ Π² ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΡΠΎΡΠΊΠ΅ ΠΊΠΎΠ΄Π°, ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ Ρ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΡΠΈΠΏΠΎΠΌ. Π‘Π²ΠΎΠΉΡΡΠ²Π° ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ nil, ΡΠΊΠ°Π·ΡΠ²Π°Ρ Π½Π° ΡΠΎ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ΅ΠΌΠΈΡΡΡ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ βΠΏΠΎΠΊΠ° ΡΡΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅β Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠ»Π°ΡΡ SurveyQuestion Ρ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΡΠΈΠΏΠΎΠΌ String ΡΠ²ΠΎΠΉΡΡΠ²Π° response:
class SurveyQuestion {
var text: String
var response: String?
init(text: String) {
self.text = text
}
func ask() {
print(text)
}
}
let cheeseQuestion = SurveyQuestion(text: "ΠΡΠ°Π²ΠΈΡΡΡ Π»ΠΈ Π²Π°ΠΌ ΡΡΡ?")
cheeseQuestion.ask()
// ΠΡΠ²Π΅Π΄Π΅Ρ "ΠΡΠ°Π²ΠΈΡΡΡ Π»ΠΈ Π²Π°ΠΌ ΡΡΡ?"
cheeseQuestion.response = "ΠΠ°, Ρ Π»ΡΠ±Π»Ρ ΡΡΡ"
ΠΡΠ²Π΅Ρ Π½Π° Π²ΠΎΠΏΡΠΎΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΏΠΎΠΊΠ° ΠΎΠ½ Π½Π΅ Π·Π°Π΄Π°Π½, ΡΠ°ΠΊ ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ response Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠΈΠΏΠ° String? (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ String). ΠΠΌΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ nil ΠΏΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ SurveyQuestion, Π·Π½Π°ΡΠ°ΡΠ΅Π΅, ΡΡΠΎ βΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠΊΠ° Π½Π΅Ρβ.
ΠΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΌΒ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΡ (ΠΊΠΎΠ³Π΄Π° ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°) ΡΠ²ΠΎΠΉΡΡΠ² Π² Π»ΡΠ±ΠΎΠΉ ΡΠΎΡΠΊΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΎΠ½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄Π°Π»Π΅Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ.
ΠΠ°ΠΌΠ΅ΡΠΊΠ°
Π ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°Ρ ΠΊΠ»Π°ΡΡΠ° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ. ΠΠ½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠΌ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Ρ SurveyQuestion ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° text ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ text, Π΄Π»Ρ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ SurveyQuestion. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΌ, ΠΎΠ½ΠΎ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ΅ ΠΊΠ»Π°ΡΡΠ°:
class SurveyQuestion {
let text: String
var response: String?
init(text: String) {
self.text = text
}
func ask() {
print(text)
}
}
let beetsQuestion = SurveyQuestion(text: "Π§ΡΠΎ Π½Π°ΡΡΠ΅Ρ ΡΠ²Π΅ΠΊΠ»Ρ?")
beetsQuestion.ask()
// ΠΡΠ²Π΅Π΄Π΅Ρ "Π§ΡΠΎ Π½Π°ΡΡΠ΅Ρ ΡΠ²Π΅ΠΊΠ»Ρ?"
beetsQuestion.response = "Π― Π»ΡΠ±Π»Ρ ΡΠ²Π΅ΠΊΠ»Ρ, Π½ΠΎ Π½Π΅ Π² ΡΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅!"
ΠΠ΅ΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ
Swift ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π΄Π»Ρ Π»ΡΠ±ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ ΠΈΠ»ΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ Π²ΡΠ΅Ρ Π΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ² ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°. ΠΠ΅ΡΠΎΠ»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ Ρ ΡΠΆΠ΅ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Π½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠ»Π°ΡΡ ShoppingListItem, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΈΠΌΡ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΄Π΅Π»ΠΊΠΈ Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΠΈΠ· Π»ΠΈΡΡΠ° ΠΏΠΎΠΊΡΠΏΠΎΠΊ:
class ShoppingListItem {
var name: String?
var quantity = 1
var purchased = false
}
var item = ShoppingListItem()
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π²ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΠ»Π°ΡΡΠ° ShoppingListItem ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈ ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°, ΡΠΎ ShoppingListItem Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π΅ΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ Ρ ΡΠΆΠ΅ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Π½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. (Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ name - ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° String, Π·Π½Π°ΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π²Π½ΠΎ nil). Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° ShoppingListItem Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄Π΅ΡΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ ShoppingListItem(), ΡΡΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ item.
ΠΠΎΡΠ»Π΅Π½Π½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΡΡΡΡΠΊΡΡΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ²
Π‘ΡΡΡΠΊΡΡΡΠ½ΡΠ΅ ΡΠΈΠΏΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΠΎΡΠ»Π΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°. ΠΡΠΎ Π²Π΅ΡΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ Ρ ΡΠ°Π½ΠΈΠΌΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΠΎΡΠ»Π΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ - ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠ»Π΅Π½Π° Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΡΡΡΡΠΊΡΡΡΡ. ΠΠ°ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ²ΠΎΠΉΡΡΠ² Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Ρ Π² ΠΏΠΎΡΠ»Π΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ.
ΠΡΠΈΠΌΠ΅Ρ Π½ΠΈΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΡΡΠΊΡΡΡΡ Size Ρ Π΄Π²ΡΠΌΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ width, height. ΠΠ±Π° ΡΠ²ΠΎΠΉΡΡΠ²Π° Π²ΡΠ²Π΅Π΄Π΅Π½Ρ ΠΊΠ°ΠΊ Double ΠΈΠ·-Π·Π° Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°Π²Π½ΠΎΠ³ΠΎ 0.0.
Π‘ΡΡΡΠΊΡΡΡΠ° Size Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ init(width:height: ) ΠΏΠΎΡΠ»Π΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Size ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°:
struct Size {
var width = 0.0, height = 0.0
}
let twoByTwo = Size(width: 2.0, height: 2.0)
ΠΠ΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Π΄Π»Ρ ΡΠΈΠΏΠΎΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΡ
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΠΌΠΎΠ³ΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΡΡΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°. ΠΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅Π³Π°ΡΡ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π² ΡΠ°Π·Π½ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°Ρ .
ΠΡΠ°Π²ΠΈΠ»Π° ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΊΠΈΡ ΡΠΎΡΠΌ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ,Β Π΄Π»Ρ ΡΠΈΠΏΠΎΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈ ΡΡΡΠ»ΠΎΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² ΡΠ°Π·Π½ΡΠ΅. Π’ΠΈΠΏΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ (ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ) Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠ°ΠΊ ΡΡΠΎ ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠ³ΡΡ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΡΠΎ, ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ°ΠΌΠΈ. ΠΠ»Π°ΡΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΌΠΎΠ³ΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΊΠ°ΠΊ ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Ρ ΠΊΠ»Π°ΡΡΠΎΠ² Π΅ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π½Π°Π»ΠΈΡΠΈΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ°. ΠΠ±ΡΠ·Π°Π½Π½ΠΎΡΡΠΈ ΠΎΠΏΠΈΡΠ°Π½Ρ Π² Π³Π»Π°Π²Π΅ ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ°.
ΠΠ»Ρ ΡΠΈΠΏΠΎΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ self.init Π΄Π»Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΠΏΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠ²ΠΎΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡ self.init ΠΈΠ· ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π΄Π»Ρ ΡΠΈΠΏΠΎΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΠΎ Π²Ρ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π΅ΡΠΎΠ»ΡΠ½ΠΎΠΌΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ (ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π½Π½ΠΎΠΌΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΡΡΡΡΠΊΡΡΡΠ°) Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. Π’Π°ΠΊΠΎΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ ΡΠΈΡΡΠ°ΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠΏΡΡΠ΅Π½Π° ΠΏΡΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°.
ΠΠ°ΠΌΠ΅ΡΠΊΠ°
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Π²Π°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΠΈΠΏ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π» Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π±ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠΌΒ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π½Π½ΡΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠΌ, ΠΈΠ»ΠΈ Π²Π°ΡΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠΌ, ΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π² ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΡΠΈΠΏΠ°, ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΠΏΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠΌΠΎΡΡΠΈΡΠ΅ Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΡ.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΡΡ ΡΡΡΡΠΊΡΡΡΡ Rect Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°. ΠΡΠΈΠΌΠ΅ΡΡ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄Π²Π΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Size, Point, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 0.0 Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²:
struct Size {
var width = 0.0, height = 0.0
}
struct Point {
var x = 0.0, y = 0.0
}
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΡΠΊΡΡΡΡ Rect ΡΡΠ΅ΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ²ΠΎΡ Π½ΡΠ»Π΅Π²ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ²ΠΎΠΉΡΡΠ² origin ΠΈ size, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΎΡΠΊΡ ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ, ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ ΡΠΎΡΠΊΡ ΡΠ΅Π½ΡΡΠ° ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ. ΠΡΠΈ ΠΎΠΏΡΠΈΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΡΡΠ΅ΠΌΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΡ Rect:
struct Rect {
var origin = Point()
var size = Size()
init() {}
init(origin: Point, size: Size) {
self.origin = origin
self.size = size
}
init(center: Point, size: Size) {
let originX = center.x - (size.width / 2)
let originY = center.y - (size.height / 2)
self.init(origin: Point(x: originX, y: originY), size: size)
}
}
ΠΠ΅ΡΠ²ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Rect - init() ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΌΡΠΉ, ΡΡΠΎ ΠΈ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»Π° ΡΡΡΡΠΊΡΡΡΠ°, Π΅ΡΠ»ΠΈ Π±Ρ Π½Π΅ ΠΈΠΌΠ΅Π»Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ². ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΡΡΠΎΠ΅ ΡΠ΅Π»ΠΎ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π½ΠΎΠ΅ ΠΏΠ°ΡΠΎΠΉ ΠΏΡΡΡΡΡ ΡΠΈΠ³ΡΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ {}, ΠΈ Π½Π΅ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠ·ΡΠ²Π°Ρ ΡΠ°ΠΊΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ, ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Rect, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° origin, size Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ Point(x: 0.0, y: 0.0) ΠΈ Size(width: 0.0, height: 0.0), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½Ρ ΠΈΠ· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²:
let basicRect = Rect()
//ΠΈΡΡ
ΠΎΠ΄Π½Π°Ρ ΡΠΎΡΠΊΠ° Rect (0.0, 0.0) ΠΈ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ (0.0, 0.0)
ΠΡΠΎΡΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Rect - init(origin:size: ) ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΡΡΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠ³Π»Π° Π±Ρ ΠΈΠΌΠ΅ΡΡ ΡΡΡΡΠΊΡΡΡΠ°, Π΅ΡΠ»ΠΈ Π±Ρ Π½Π΅ ΠΈΠΌΠ΅Π»Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ². ΠΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² origin, size ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ:
let originRect = Rect(origin: Point(x: 2.0, y: 2.0), size: Size(width: 5.0, height: 5.0))
//ΠΈΡΡ
ΠΎΠ΄Π½Π°Ρ ΡΠΎΡΠΊΠ° Rect (2.0, 2.0) ΠΈ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ (5.0, 5.0)
Π’ΡΠ΅ΡΠΈΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Rect - init(center:size: ) Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΉ. ΠΠ½ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠΎΡΠΊΠΈ, ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° ΡΠΎΡΠΊΠ΅ center ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ size. Π’ΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΌ ΠΎΠ½ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ( ΠΈΠ»ΠΈ Π΄Π΅Π»Π΅Π³ΠΈΡΡΠ΅Ρ) init(origin:size: ) ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠ°Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠΎΡΠΊΡ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²:
let centerRect = Rect(center: Point(x: 4.0, y: 4.0), size: Size(width: 3.0, height: 3.0))
//ΠΈΡΡ
ΠΎΠ΄Π½Π°Ρ ΡΠΎΡΠΊΠ° centerRectβΠ° ΡΠ°Π²Π½Π° (2.5, 2.5) ΠΈ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ (3.0, 3.0)
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ init(center:size: ) ΠΌΠΎΠ³ Π±Ρ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π½ΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ origin, size ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ. ΠΠ΄Π½Π°ΠΊΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ (Ρ.ΠΊ. Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΠΈΠ·-Π·Π° ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ) Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° init(center:size: ) Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄ΡΡΠ³ΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡΡ.
ΠΠ°ΠΌΠ΅ΡΠΊΠ°
ΠΠ»Ρ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° Π·Π°ΠΏΠΈΡΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π±Π΅Π· ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² init(), init(origin:size: ) ΡΠΌΠΎΡΡΠΈΡΠ΅ Π³Π»Π°Π²Ρ Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΡ.
ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ°
ΠΡΠ΅ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ ΠΊΠ»Π°ΡΡΠ°, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΈ ΡΠ΅, ΡΡΠΎ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Ρ Ρ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Ρ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
Swift ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π΄Π²Π° Π²ΠΈΠ΄Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² ΠΊΠ»Π°ΡΡΠΎΠ²ΡΡ ΡΠΈΠΏΠΎΠ² Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ½ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ½Ρ ΠΊΠ°ΠΊ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ (ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ) ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ.
ΠΠ°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ
ΠΠ°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΠΊΠ»Π°ΡΡΠ°. ΠΠ½ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΠΎΠΌ ΠΈ ΡΡΠΎΠ±Ρ Π²ΡΠ·Π²Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° Π΄Π»Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΠΏΠΎΡΠΊΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΉ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠΎΠ².
Π’Π°ΠΊ ΡΠ»ΠΎΠΆΠΈΠ»ΠΎΡΡ, ΡΡΠΎ ΠΊΠ»Π°ΡΡΡ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΠΌΠ΅ΡΡ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ², ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π±ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΊΠ»Π°ΡΡ ΠΈΠΌΠ΅Π΅Ρ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ. ΠΠ°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡ Π² ΡΠ΅Π±Π΅ Π²ΡΠ΅ ΡΠΎΡΠΊΠΈ, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ΄Π΅Ρ ΠΏΠΎ ΡΠ΅ΠΏΠΎΡΠΊΠ΅ Π² ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡ.
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ»Π°ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄ΠΈΠ½ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ , ΡΡΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅ΡΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² ΠΎΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°.
ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΡΠ²Π»ΡΡΡΡΡ Π²ΡΠΎΡΠΈΡΠ½ΡΠΌΠΈ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΌΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°ΠΌΠΈ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ°. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΠΈΠ· ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠ»Π°ΡΡΠ°, ΡΡΠΎ ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ.
ΠΡ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ, Π΅ΡΠ»ΠΈ Π²Π°Ρ ΠΊΠ»Π°ΡΡ Π½Π΅ Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² Π½ΠΈΡ . Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΠΏΡΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π²ΡΠ΅ΠΌΡ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΌΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ° Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΡΠΎΠΉ ΠΈ ΠΊΡΠ°ΡΠΊΠΎΠΉ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ²
ΠΠ°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ² Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ ΠΏΡΠΎΡΡΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ Π΄Π»Ρ ΡΠΈΠΏΠΎΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ:
init(ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ) {
Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
}
ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΠΏΠΈΡΡΡΡΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ convenience, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π΄ΠΎ ΡΠ»ΠΎΠ²Π° init ΠΈ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠΌ:
convenience init(ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ) {
Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
}
ΠΠ΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ²ΡΡ ΡΠΈΠΏΠΎΠ²
ΠΠ»Ρ ΠΏΡΠΎΡΡΠΎΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΌΠΈ ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°ΠΌΠΈ, Swift ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π΄Π»Ρ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°ΠΌΠΈ:
ΠΡΠ°Π²ΠΈΠ»ΠΎ 1
ΠΠ°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ·ΡΠ²Π°ΡΡ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΈΠ· ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°.
ΠΡΠ°Π²ΠΈΠ»ΠΎ 2
ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ·ΡΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΈΠ· ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠ»Π°ΡΡΠ°.
ΠΡΠ°Π²ΠΈΠ»ΠΎ 3
ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΡΡΠ΅ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ·ΡΠ²Π°ΡΡ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ.
ΠΠΎΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΡΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ:
- ΠΠ°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π°Π²Π΅ΡΡ
- ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΡΠΎΠ²Π½Ρ (ΠΊΠ»Π°ΡΡΡ).
ΠΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π² ΠΈΠ»Π»ΡΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠΎΡΠΌΠ΅:

ΠΠ΄Π΅ΡΡ, Π² ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ΅ Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΈ Π΄Π²Π° Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°. ΠΠ΄ΠΈΠ½ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π΄ΡΡΠ³ΠΎΠΉ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ. ΠΡΠΎΡ ΡΠΈΡΡΠ½ΠΎΠΊ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ 2 ΠΈ 3. ΠΡΠΎΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡ ΡΠ°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ ΡΠΆΠ΅ Π΄Π°Π»ΡΡΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π·Π΄Π΅ΡΡ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ.
ΠΠΎΠ΄ΠΊΠ»Π°ΡΡ Π½Π° ΡΡΠΎΠΌ ΡΠΈΡΡΠ½ΠΊΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π²Π° Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΠΈ ΠΎΠ΄ΠΈΠ½ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ. ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ·Π²Π°ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π΄Π²ΡΡ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ², ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠ»Π°ΡΡΠ°. ΠΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ 2 ΠΈ 3. ΠΠ±Π° Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΈΠ· ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°, Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»Ρ 1.
ΠΠ°ΠΌΠ΅ΡΠΊΠ°
ΠΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π²Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΡΠ±ΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΈΠ· ΡΡ Π΅ΠΌΡ Π²ΡΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΎΠ½ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ. ΠΡΠ°Π²ΠΈΠ»Π° Π²Π»ΠΈΡΡΡ Π»ΠΈΡΡ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΠΈΡΠ°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ°.
Π‘Ρ Π΅ΠΌΠ° Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ ΠΈΠ· ΡΠ΅ΡΡΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠ½Π° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠ°ΠΊ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΎΡΠ΅ΠΊ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ°, ΡΠΏΡΠΎΡΠ°Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΡΡΠ΅Π΄ΠΈ ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ²:

ΠΠ²ΡΡ ΡΠ°Π·Π½Π°Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ° Π² Swift ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π²ΡΡ ΡΠ°Π·Π½ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ. ΠΠ° ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ°Π·Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ ΠΊΠ»Π°ΡΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Β ΡΠ²ΠΎΠΉΡΡΠ² Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π±ΡΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ, Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π²ΡΠΎΡΠ°Ρ ΡΠ°Π·Π°, ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ²ΠΎΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π΅ΡΠ΅ Π΄ΠΎ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ ΡΡΠΈΡΠ°ΡΡΡΡ, ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π²ΡΡ ΡΠ°Π·Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π΅Π»Π°Π΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ, Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ ΠΏΠΎΠ»Π½ΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² Π² ΠΊΠ»Π°ΡΡΠΎΠ²ΠΎΠΉ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ. ΠΠ²ΡΡ ΡΠ°Π·Π½Π°Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ ΡΠ²ΠΎΠΉΡΡΠ² Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ ΠΈ Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π΄ΡΡΠ³ΠΈΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠΌ.
ΠΠ°ΠΌΠ΅ΡΠΊΠ°
ΠΠ²ΡΡ ΡΠ°Π·Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² Swift Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² Objective-C. ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ°Π·Π΅ Π² ΡΠΎΠΌ, ΡΡΠΎ Π² Objective-C ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ 0 ΠΈΠ»ΠΈ nil. Π Swift ΠΆΠ΅ ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΈΠΏΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ 0 ΠΈΠ»ΠΈ nil, ΡΠ²Π»ΡΡΡΡΡ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌΠΈ.
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Swift ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΡΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Π°ΡΠ° Π΄Π²ΡΡ ΡΠ°Π·Π½Π°Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠ»Π° Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ:
ΠΡΠΎΠ²Π΅ΡΠΊΠ° 1. ΠΠ°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠΎΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ Π΄Π΅Π»Π΅Π³ΠΈΡΡΠ΅Ρ Π½Π°Π²Π΅ΡΡ , Π² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°.
ΠΠ°ΠΊ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅, ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π³Π΄Π΅ Π²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Ρ ΡΠ°Π½ΠΈΠΌΡΡ ΡΠ²ΠΎΠΉΡΡΠ² ΠΈΠ·Π²Π΅ΡΡΠ½Ρ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΡΡ ΡΡΠΎΠΌΡ ΠΏΡΠ°Π²ΠΈΠ»Ρ, Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π²ΡΠ΅Β Π΅Π³ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Ρ Π²Π²Π΅ΡΡ ΠΏΠΎ ΡΠ΅ΠΏΠΎΡΠΊΠ΅.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° 2. ΠΠ°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π΄ΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ. ΠΡΠ»ΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ, ΡΠΎ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΈΡΠ²ΠΎΠΈΡ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½ΠΎ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° 3. ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π»ΡΠ±ΡΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ (Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΊΠ»Π°ΡΡΠΎΠΌ). ΠΡΠ»ΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ, ΡΠΎ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ, Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ Π΅Π³ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ°.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° 4. ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°, ΡΠΈΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΈΠ»ΠΈ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° self ΠΊΠ°ΠΊ Π½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π° ΠΏΠ΅ΡΠ²Π°Ρ ΡΠ°Π·Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡΡ ΠΏΠ΅ΡΠ²Π°Ρ ΡΠ°Π·Π°. Π ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠ°ΠΊ ΡΡΠ°Π»ΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π²Π°Π»ΠΈΠ΄Π΅Π½ (ΠΊΠΎΡΡΠ΅ΠΊΡΠ΅Π½) ΠΊ ΠΊΠΎΠ½ΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ°Π·Ρ.
ΠΠΎΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ Π΄Π²ΡΡ ΡΠ°Π·Π½Π°Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Π°Ρ Π½Π° ΡΠ΅ΡΡΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°Ρ (ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π²ΡΡΠ΅):
Π€Π°Π·Π° ΠΏΠ΅ΡΠ²Π°Ρ
- ΠΠ°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π² ΠΊΠ»Π°ΡΡΠ΅.
- ΠΠ°ΠΌΡΡΡ ΠΏΠΎΠ΄ Π½ΠΎΠ²ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ. ΠΠΎ ΠΎΠ½Π° Π΅ΡΠ΅ Π½Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π°.
- ΠΠ°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅Ρ, ΡΡΠΎ Π²ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΡΡΠΈΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ, ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ°ΠΌΡΡΡ ΠΏΠΎΠ΄ ΡΡΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π°.
- ΠΠ°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°, ΡΡΠΎ ΠΏΠΎΡΠ° ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΡΠ΅ ΠΆΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π΅Π³ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠ²ΠΎΠΉΡΡΠ².
- Π’Π°ΠΊ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ ΠΏΠΎ ΡΠ΅ΠΏΠΎΡΠΊΠ΅Β Π΄ΠΎ ΡΠ°ΠΌΠΎΠ³ΠΎ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°.
- ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Π΅ΡΡ ΡΡΠΊΠ° ΡΡΠΎΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠΈ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΠ° ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠ»Π°ΡΡ Π² ΡΠ΅ΠΏΠΎΡΠΊΠ΅ ΡΠ±Π΅Π΄ΠΈΠ»ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²ΡΠ΅ Π΅Π³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π° ΡΡΠΈΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π°. ΠΠ° ΡΡΠΎΠΌ ΠΏΠ΅ΡΠ²Π°Ρ ΡΠ°Π·Π° ΠΊΠΎΠ½ΡΠ°Π΅ΡΡΡ.
Π€Π°Π·Π° Π²ΡΠΎΡΠ°Ρ
- ΠΠ²ΠΈΠ³Π°ΡΡΡ Π²Π½ΠΈΠ· ΠΏΠΎ ΡΠ΅ΠΏΠΎΡΠΊΠ΅, ΠΊΠ°ΠΆΠ΄ΡΠΉ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π² ΡΡΠΎΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°ΠΊΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ, ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ. Π’Π΅ΠΏΠ΅ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ self ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ²ΠΎΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ Ρ.Π΄.
- Π Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΠΊΠ°ΠΆΠ΄ΡΠΉ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π² ΡΠ΅ΠΏΠΎΡΠΊΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ self.
ΠΠΎΡ ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΠ΅ΡΠ²Π°Ρ ΡΠ°Π·Π° Π΄Π»Ρ Π³ΠΈΠΏΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ° ΠΈ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°:

Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π²ΡΠ·ΠΎΠ²Π° Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ°. ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΡΠ²ΠΎΠΉΡΡΠ². ΠΠ½ Π΄Π΅Π»Π΅Π³ΠΈΡΡΠ΅Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠΌΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΠΏΠΎ ΡΠΎΠΌΡ ΠΆΠ΅ ΠΊΠ»Π°ΡΡΡ, Π³Π΄Π΅ ΠΈ ΠΎΠ½ ΡΠ°ΠΌ.
ΠΠ°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΠ±Π΅ΠΆΠ΄Π°Π΅ΡΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ° ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ 1. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΎΠ½ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° Π΄Π»Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Ρ Π²ΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ² ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°. ΠΠ°Π»Π΅Π΅ Π½Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΠΏΠΎΡΠΊΠΈ Π½Π°Π²Π΅ΡΡ , ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΡ, ΡΠ°ΠΊ ΡΡΠΎ Π½Π΅Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ Π½ΡΠΆΠ΄Ρ Π² Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ.
Π‘ΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΏΠ°ΠΌΡΡΡ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ, Π€Π°Π·Π° 1 Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ.
ΠΠΎΡ ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π€Π°Π·Π° 2:

ΠΠ°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠ΅Π½ΡΡΡ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ(Ρ ΠΎΡΡ ΠΈ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½).
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ, ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²Π½ΠΎΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ° (Ρ ΠΎΡΡ ΠΎΠ½ ΡΠ°ΠΊ ΠΆΠ΅ ΠΈ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ).
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ°, ΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²Π½ΠΎΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π±ΡΠ» Π²ΡΠ·Π²Π°Π½.
Π’ΠΎ Π΅ΡΡΡ Π΅ΡΠ»ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΡΠ΄Π°Π»Π΅Π½Π½ΠΎ, ΡΠΎ ΠΎΠ½ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΠΊΠ°ΠΊ Π±Ρ, ΠΈΠ΄Π΅Ρ Π²Π²Π΅ΡΡ , Π° ΠΏΠΎΡΠΎΠΌ ΡΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π²Π½ΠΈΠ·.
ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°
Π ΠΎΡΠ»ΠΈΡΠΈΠΈ ΠΎΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠ² Π² Objective-C, ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΡ Π² Swift Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² ΠΈΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠΎΠ² ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π² Swift ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΡΡΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠΌ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠΌ, Π° ΠΏΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ»ΠΈ Π½Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½.
ΠΠ°ΠΌΠ΅ΡΠΊΠ°
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° Π½Π°ΡΠ»Π΅Π΄ΡΡΡΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²Π°Ρ , Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΈ ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» Π΄Π΅Π»Π°ΡΡ. ΠΠ°Π»Π΅Π΅ ΠΌΡ ΡΡΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ° Π±ΡΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² Π΅Π³ΠΎ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠΎΠ², Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ²ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² Π²Π½ΡΡΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ°.
ΠΠΎΠ³Π΄Π° Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠΌ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°, Π²Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΈΡΠ°ΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ override ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ°. ΠΡΠΎ Π²Π΅ΡΠ½ΠΎ Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΠΠ΅ΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ.
Π’Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈΠ»ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΡ, ΠΏΡΠΈΡΡΡΡΡΠ²ΠΈΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° override ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Swift ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΎ, ΡΡΠΎ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠΈΠΉ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½, ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅Π³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΎΡΡ.
ΠΠ°ΠΌΠ΅ΡΠΊΠ°
ΠΡ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΈΡΠ΅ΡΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ override, ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π΅ΡΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠΌ.
Π Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠΌ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°, ΡΠΎ ΡΡΠΎΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½ Π½Π°ΠΏΡΡΠΌΡΡ Π²Π°ΡΠΈΠΌ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠΌ, Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌΠΈ Π²ΡΡΠ΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²Π°Ρ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ Π½Π΅ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°. Π Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅, Π²Ρ Π½Π΅ ΠΏΠΈΡΠ΅ΡΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ override, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°.
ΠΡΠΈΠΌΠ΅Ρ Π½ΠΈΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ Vehicle. ΠΡΠΎ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° numberOfWheels ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ 0 ΡΠΈΠΏΠ° Int. Π‘Π²ΠΎΠΉΡΡΠ²ΠΎ numberOfWheels ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° description, Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠΈΠΏΠ° String:
class Vehicle {
var numberOfWheels = 0
var description: String {
return "\(numberOfWheels) ΠΊΠΎΠ»Π΅Ρ(ΠΎ)"
}
}
ΠΠ»Π°ΡΡ Vehicle ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ Π΅Π³ΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ². Π Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΎΠ½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² Π³Π»Π°Π²Π΅ ΠΠ΅ΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ. ΠΠ΅ΡΠΎΠ»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ (ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΡΡΡΠΏΠ΅Π½) Π²ΡΠ΅Π³Π΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠΌ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ° Vehicle Ρ numberOfWheels ΡΠ°Π²Π½ΡΠΌ 0:
let vehicle = Vehicle()
print("Π’ΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΎΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ \(vehicle.description)")
//Π’ΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΠΎΠ΅ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ 0 ΠΊΠΎΠ»Π΅Ρ(ΠΎ)
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ Bicycle ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° Vehicle:
class Bicycle: Vehicle {
override init() {
super.init()
numberOfWheels = 2
}
}
ΠΠΎΠ΄ΠΊΠ»Π°ΡΡ Bicycle ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ init(). ΠΠ°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠΌ ΠΈΠ· ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° VehicleΒ ΠΈ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Π΅ΡΡΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΠΊΠ»Π°ΡΡΠ° Bicycle ΠΎΡΠΌΠ΅ΡΠ΅Π½Π° ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ override.
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ init() Π΄Π»Ρ Bicycle Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π²ΡΠ·ΠΎΠ²Π° super.init(), ΠΊΠΎΡΠΎΡΡΠΉ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π΄Π»Ρ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° Vehicle ΠΊΠ»Π°ΡΡΠ° Bicycle. ΠΠ½ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΡΠΎ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ numberOfWheels ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ Π² Vehicle, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Ρ Bicycle ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΅Π³ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ. ΠΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° super.init() Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ numberOfWheels Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ 2.
ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Bicycle, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ Π΅Π³ΠΎ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΠΎΠ΅Β Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ description, Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΎΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ numberOfWheels:
let bicycle = Bicycle()
print("ΠΠ΅Π»ΠΎΡΠΈΠΏΠ΅Π΄: \(bicycle.description)")
//ΠΠ΅Π»ΠΎΡΠΈΠΏΠ΅Π΄: 2 ΠΊΠΎΠ»Π΅Ρ(Π°)
ΠΠ°ΠΌΠ΅ΡΠΊΠ°
ΠΠΎΠ΄ΠΊΠ»Π°ΡΡΡ ΠΌΠΎΠ³ΡΡ ΠΌΠ΅Π½ΡΡΡ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π½ΠΎ Π½Π΅Π»ΡΠ·Ρ ΠΌΠ΅Π½ΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°.
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅Β ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°
ΠΠ°ΠΊ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ ΡΠ°Π½Π΅Π΅, ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΡ Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°ΡΠ»Π΅Π΄ΡΡΡΡΡ, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ. ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠΈΠ»ΠΈΡΠΌΠΈ, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ.
ΠΠΎΠΏΡΡΠΊΠ°Ρ, ΡΡΠΎ Π²Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π»ΡΠ±ΠΎΠΌΡ Π½ΠΎΠ²ΠΎΠΌΡ ΡΠ²ΠΎΠΉΡΡΠ²Ρ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΌΡ Π² ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ΅, ΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π²Π° ΠΏΡΠ°Π²ΠΈΠ»Π°:
ΠΡΠ°Π²ΠΈΠ»ΠΎ 1. ΠΡΠ»ΠΈ Π²Π°Ρ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°, ΠΎΠ½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°.
ΠΡΠ°Π²ΠΈΠ»ΠΎ 2. ΠΡΠ»ΠΈ Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π²ΡΠ΅Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² Π΅Π³ΠΎ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°, Π»ΠΈΠ±ΠΎ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Ρ ΠΊΠ°ΠΊ ΠΏΠΎ ΠΏΡΠ°Π²ΠΈΠ»Ρ 1 ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Ρ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ°, ΡΠΎ ΡΠΎΠ³Π΄Π° ΡΡΠΎΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°.
ΠΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Π°Ρ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ ΠΏΠΎΠ·ΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ.
ΠΠ°ΠΌΠ΅ΡΠΊΠ°
ΠΠΎΠ΄ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° ΠΊΠ°ΠΊ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°ΡΡΠΈ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΠ΅ΠΉ ΠΏΡΠ°Π²ΠΈΠ»Ρ 2.
ΠΠ°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ, ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ. ΠΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ ΡΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠΎΠ² Food, RecipeIngredient ΠΈ ShoppingListItem ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΠΊΠ°ΠΊ ΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡ.
ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ (Π±Π°Π·ΠΎΠ²ΡΠΉ) ΠΊΠ»Π°ΡΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Food, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ΄Π½ΠΎ ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠΈΠΏΠ° String, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ΅ name, ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄Π²Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° Food:
class Food {
var name: String
init(name: String) {
self.name = name
}
convenience init() {
self.init(name: "[Unnamed]")
}
}
Π‘Ρ Π΅ΠΌΠ° Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ΅ΠΏΠΎΡΠΊΡ ΡΠ°Π±ΠΎΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² Π² ΠΊΠ»Π°ΡΡΠ΅ Food :

ΠΠ»Π°ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°, ΡΠ°ΠΊ ΡΡΠΎ ΠΊΠ»Π°ΡΡ Food ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ name. ΠΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Food ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ:
let namedMeat = Food(name: "ΠΠ΅ΠΊΠΎΠ½")
//ΠΈΠΌΡ namedMeat ΡΠ²Π»ΡΠ΅ΡΡΡ "ΠΠ΅ΠΊΠΎΠ½"
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ init(name: String) ΠΈΠ· ΠΊΠ»Π°ΡΡΠ° Food, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² Π²ΠΈΠ΄Π΅ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΡΠΎ Π²ΡΠ΅ Ρ ΡΠ°Π½ΠΈΠΌΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Food ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ. ΠΠ»Π°ΡΡ Food Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°, ΡΠ°ΠΊ ΡΡΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ init(name: String) Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π²ΡΠ·ΠΎΠ²Π° super.init() Π΄Π»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅ΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ»Π°ΡΡ Food ΡΠ°ΠΊ ΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ init() Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ init() ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠΌΡ ΠΏΠ»Π΅ΠΉΡΡ ΠΎΠ»Π΄Π΅ΡΠ° Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠΉ Π΅Π΄Ρ, Π΄Π΅Π»Π΅Π³ΠΈΡΡΡ ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ name ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° init(name: String), Π΄Π°Π²Π°Ρ Π΅ΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ [Unnamed] :
let mysteryMeat = Food()
//mysteryMeat Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ "[Unnamed]"
ΠΡΠΎΡΠΎΠΉ ΠΊΠ»Π°ΡΡ Π² ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ - ΡΡΠΎ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ RecipeIngredient ΠΊΠ»Π°ΡΡΠ° Food. ΠΠ»Π°ΡΡ RecipeIngredient ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΈΠ½Π³ΡΠ΅Π΄ΠΈΠ΅Π½ΡΠΎΠ² Π² ΡΠ΅ΡΠ΅ΠΏΡΠ΅. ΠΠ½ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ quantity ΡΠΈΠΏΠ° Int (Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΠ²ΠΎΠΉΡΡΠ²Ρ name, ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΎΡ Food) ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π΄Π²Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² RecipeIngredient :
class RecipeIngredient: Food {
var quantity: Int
init(name: String, quantity: Int) {
self.quantity = quantity
super.init(name: name)
}
override convenience init(name: String) {
self.init(name: name, quantity: 1)
}
}
Π‘Ρ Π΅ΠΌΠ° Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ΅ΠΏΠΎΡΠΊΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° RecipeIngredient:

ΠΠ»Π°ΡΡ RecipeIngredient ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ΄ΠΈΠ½ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ init(name: String, quantity: Int), ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈΒ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π²ΡΠ΅ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΒ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° RecipeIngredient. ΠΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° quantity ΡΠ²ΠΎΠΉΡΡΠ²Ρ quantity, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ Π½ΠΎΠ²ΡΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΌ Π² RecipeIngredient. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π΄Π΅Π»Π΅Π³ΠΈΡΡΠ΅Ρ Π²Π²Π΅ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ init(name: String) Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° Food. ΠΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ β1 ΠΈΠ· ΡΠ°Π·Π΄Π΅Π»Π° βΠΠ²ΡΡ ΡΠ°Π·Π½Π°Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡβ, ΡΡΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²ΡΡΠ΅ Π½Π° ΡΡΠΎΠΉ ΠΆΠ΅ ΡΡΡΠ°Π½ΠΈΡΠ΅.
RecipeIngredient ΡΠ°ΠΊ ΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ init(name: String), ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° RecipeIngredient ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ. ΠΡΠΎΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π²Π½ΠΎΠ΅ 1 Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΎ Π±Π΅Π· ΡΠ²Π½ΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π°. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΡΡΠΊΠΎΡΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° RecipeIngredient ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°, Π³Π΄Π΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ quantity ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π²ΡΠ΅Π³Π΄Π° ΡΠ°Π²Π½ΠΎ 1. ΠΡΠΎΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π΄Π΅Π»Π΅Π³ΠΈΡΡΠ΅Ρ ΠΏΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠΌΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΠΊΠ»Π°ΡΡΠ°, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ Π΅ΠΌΡ quantity ΡΠ°Π²Π½ΠΎΠ΅ 1.
ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ init(name: String) ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ RecipeIngredientβΠΎΠΌ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅ ΠΆΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΡΡΠΎ ΠΈ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ init(name: String) Π² Food. ΠΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΈΠ· ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°, ΡΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ override.
ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ RecipeIngredient ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ init(name: String) ΠΊΠ°ΠΊ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ, ΡΠΎ RecipeIngredient ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π²ΡΠ΅Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ RecipeIngredient Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° ΡΠΎΠΆΠ΅.
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° RecipeIngredient ΡΠ²Π»ΡΠ΅ΡΡΡ Food, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π΅Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ init(). ΠΠΎΡΡΠΎΠΌΡ ΡΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ RecipeIngredient. ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ init() ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΡΠ΅Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π²Π΅ΡΡΠΈΡ Π² Food, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ½Π° Π΄Π΅Π»Π΅Π³ΠΈΡΡΠ΅Ρ Π² RecipeIngredient Π²Π΅ΡΡΠΈΡ init(name: String), Π° Π½Π΅ Π² Π²Π΅ΡΡΠΈΡ Food.
ΠΡΠ΅ ΡΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΡΡ RecipeIngredient ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ²:
let oneMysteryItem = RecipeIngredient()
let oneBacon = RecipeIngredient(name: "Bacon")
let sixEggs = RecipeIngredient(name: "Eggs", quantity: 6)
Π’ΡΠ΅ΡΠΈΠΉ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠ»Π°ΡΡ Π² ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ - ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ ShoppingListItem ΠΊΠ»Π°ΡΡΠ° RecipeIngredient. ShoppingListItem ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ΅ΡΠ΅ΠΏΡΡ ΠΈΠ· ΠΈΠ½Π³ΡΠ΅Π΄ΠΈΠ΅Π½ΡΠΎΠ², ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΡΠ²Π»ΡΡΡΡΡ Π² Π»ΠΈΡΡΠ΅ ΠΏΠΎΠΊΡΠΏΠΎΠΊ.
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² Π»ΠΈΡΡΠ΅ ΠΏΠΎΠΊΡΠΏΠΎΠΊ (shopping list) Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ βΠ½Π΅ ΠΊΡΠΏΠ»Π΅Π½β ΠΈΠ»ΠΈ βunpurchasedβ. Β ShoppingListItemΒ ΠΈΠΌΠ΅Π΅Ρ Π±ΡΠ»Π΅Π²ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ purchased, ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ false. ShoppingListItem ΡΠ°ΠΊ ΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π²ΡΡΡΠΈΡΡΠ²Π°Π΅ΠΌΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ description, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ShoppingListItem :
class ShoppingListItem: RecipeIngredient {
var purchased = false
var description: String {
var output = "\(quantity) x \(name)"
output += purchased ? " β" : " β"
return output
}
}
ΠΠ°ΠΌΠ΅ΡΠΊΠ°
ShoppingListItem Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ purchased, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² Π»ΠΈΡΡΠ΅ ΠΏΠΎΠΊΡΠΏΠΎΠΊ, ΠΊΠ°ΠΊ ΡΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΎ ΡΡΡ, ΡΠ½Π°ΡΠ°Π»Π° ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ false, ΡΠΎ Π΅ΡΡΡ ΠΎΠ½ΠΈ Π½Π΅ ΠΊΡΠΏΠ»Π΅Π½Ρ.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠ²ΠΎΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ², ΡΠΎ ShoppingListItem Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΠΈΠ· ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°.
Π‘Ρ Π΅ΠΌΠ° Π½ΠΈΠΆΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΎΠ±ΡΡΡ ΡΠ΅ΠΏΠΎΡΠΊΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΉ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠΎΠ²:

ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΡΡΠΈ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ShoppingListItem :
var breakfastList = [
ShoppingListItem(),
ShoppingListItem(name: "Bacon"),
ShoppingListItem(name: "Eggs", quantity: 6)
]
breakfastList[0].name = "Orange juice"
breakfastList[0].purchased = true
for item in breakfastList {
print(item.description)
}
// 1 x Orange juice β
// 1 x Bacon β
// 6 x Eggs β
ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² breakfastList, Π·Π°ΠΏΠΎΠ»Π½ΡΡ Π΅Π³ΠΎ ΡΡΠ΅ΠΌΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ° ShoppingListItem. Π’ΠΈΠΏ ΠΌΠ°ΡΡΠΈΠ²Π° Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΈΠ· [ShoppingListItem]. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΌΠ°ΡΡΠΈΠ² ΡΠΎΠ·Π΄Π°Π½, ΠΌΡ ΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΠΈΠΌΡ Ρ "[Unnamed]" Π½Π° "Orange juice" ΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Ρ purchased Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true. ΠΠΎΡΠΎΠΌ ΠΌΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π°, Π³Π΄Π΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ Π²ΡΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ.
ΠΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠ΅ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ
ΠΠ½ΠΎΠ³Π΄Π° Π±ΡΠ²Π°Π΅Ρ Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠ»Π°ΡΡ, ΡΡΡΡΠΊΡΡΡΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΏΡΠΎΠ²Π°Π»ΠΈΡΡΡΡ. Π’Π°ΠΊΠΎΠ΅ Π½Π΅ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½ΠΎ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈΠ»ΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ΠΌ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ³ΠΎ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ Π΅ΡΠ΅ ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ Ρ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΠ²Π°Π»ΠΈΡΡΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΡ ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ°, ΡΡΡΡΠΊΡΡΡΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΉΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ² Π²ΠΎΠΏΡΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π·Π½Π°ΠΊ ΠΏΠΎΡΠ»Π΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° init (init?).
ΠΠ°ΠΌΠ΅ΡΠΊΠ°
ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΉΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΈ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ Ρ ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
ΠΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΉΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ. ΠΡ ΠΏΠΈΡΠ΅ΡΠ΅ return nil Π²Π½ΡΡΡΠΈ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠ΅Π³ΠΎΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Π΄Π»Ρ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΎΡΠΊΠΈ, Π³Π΄Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ²Π°Π»ΠΈΡΡΡΡ.
ΠΠ°ΠΌΠ΅ΡΠΊΠ°
Π‘ΡΡΠΎΠ³ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΡ ΡΠΎΠ»Ρ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ, ΡΡΠΎ self ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½, Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡΒ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡΡ. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ return nil Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π½Π΅ΡΠ΄Π°ΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π²Ρ Π½Π΅ ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠ»ΠΎΠ²ΠΎ return Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠ»Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠ΅ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΠ»Ρ Π³Π°ΡΠ°Π½ΡΠΈΠΈ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΡΠ»ΠΎΠ²ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΒ init(exactly: ). ΠΡΠ»ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠΎ Π΄Π°Π½Π½ΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ "ΠΏΡΠΎΠ²Π°Π»ΠΈΡΡΡ", ΡΠΎ Π΅ΡΡΡ Π²Π΅ΡΠ½Π΅ΡΒ nil.
let wholeNumber: Double = 12345.0
let pi = 3.14159
if let valueMaintained = Int(exactly: wholeNumber) {
print("\(wholeNumber) ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Int ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ \(valueMaintained)")
}
// ΠΡΠ²Π΅Π΄Π΅Ρ "12345.0 ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Int ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 12345"
let valueChanged = Int(exactly: pi)
// valueChanged is of type Int?, not Int
if valueChanged == nil {
print("\(pi) ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Int Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ")
}
// ΠΡΠ²Π΅Π΄Π΅Ρ "3.14159 ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Int Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ"
ΠΡΠΈΠΌΠ΅Ρ Π½ΠΈΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΡΡΠΊΡΡΡΡ Animal, Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΡΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ ΡΠΈΠΏΠ° String Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ species. Π‘ΡΡΡΠΊΡΡΡΠ° Animal ΡΠ°ΠΊ ΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΉΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ species. ΠΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠ°Π²Π½ΡΠ΅ΡΡΡ Π»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·Β species Π² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΏΡΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅. ΠΡΠ»ΠΈ ΡΡΡΠΎΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΡΡΠ°Ρ, ΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ nil, ΠΈ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΉΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° species ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ.
struct Animal {
let species: String
init?(species: String) {
if species.isEmpty { return nil }
self.species = species
}
}
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π΄Π»Ρ ΠΏΠΎΠΏΡΡΠΊΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΡΡΡΠΊΡΡΡΡ Animal ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π»ΠΈ ΠΏΡΠΎΡΠ»Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ:
let someCreature = Animal(species: "ΠΠΈΡΠ°Ρ")
// someCreature ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ Animal?, Π½ΠΎ Π½Π΅ Animal
if let giraffe = someCreature {
print("ΠΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΆΠΈΠ²ΠΎΡΠ½ΠΎΠ΅ ΡΠΈΠΏΠ° \(giraffe.species) ")
}
// ΠΡΠ²Π΅Π΄Π΅Ρ "ΠΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΆΠΈΠ²ΠΎΡΠ½ΠΎΠ΅ ΡΠΈΠΏΠ° ΠΠΈΡΠ°Ρ "
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΠ΅ ΠΏΡΡΡΡΡ ΡΡΡΠΎΠΊΡ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ species ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠ΅Π³ΠΎΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°, ΡΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠ±ΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ:
let anonymousCreature = Animal(species: "")
// anonymousCreature ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ Animal?, Π½ΠΎ Π½Π΅ Animal
if anonymousCreature == nil {
print("ΠΠ΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ΅ ΠΆΠΈΠ²ΠΎΡΠ½ΠΎΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ")
}
// ΠΡΠ²Π΅Π΄Π΅Ρ "ΠΠ΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ΅ ΠΆΠΈΠ²ΠΎΡΠ½ΠΎΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ"
ΠΠ°ΠΌΠ΅ΡΠΊΠ°
ΠΡΠΎΠ²Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΈ (ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ "", Π° Π½Π΅ "ΠΠΈΡΠ°Ρ") ΡΡΠΎ Π½Π΅ ΡΠΎΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π½Π° nil, Π΄Π»Ρ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ String. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅, ΠΏΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ° ("") ΠΊΠΎΡΡΠ΅ΠΊΡΠ½Π° ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΡΠ½ΠΎΠΉ String, Π° Π½Π΅ String?. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ Π½Π΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΡΠΎΠ±Ρ ΠΆΠΈΠ²ΠΎΡΠ½ΠΎΠ΅ ΠΈΠΌΠ΅Π»ΠΎ ΠΏΡΡΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ²ΠΎΠΉΡΡΠ²Π° species. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΉΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ΄Π°Π΅Ρ ΡΠ±ΠΎΠΉ, Π΅ΡΠ»ΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡ ΠΏΡΡΡΡΡ ΡΡΡΠΎΠΊΡ.
ΠΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠ΅ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΉΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ»Π΅Π½Π° ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ²Π°Π»ΠΈΡΡΡΡ, Π΅ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π½Π΅ Π±ΡΠ΄ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅ΠΌΡ ΡΠ»Π΅Π½Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ Π½ΠΈΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ TemperatureUnit Ρ ΡΡΠ΅ΠΌΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠ°ΠΌΠΈ (kelvin, celsius ΠΈ fahrenheit). ΠΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΉΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ ΡΠ»Π΅Π½ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ Π΄Π»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠ° Character, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ» ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ:
enum TemperatureUnit {
case kelvin, celsius, fahrenheit
init?(symbol: Character) {
switch symbol {
case "K":
self = .kelvin
case "C":
self = .celsius
case "F":
self = .fahrenheit
default:
return nil
}
}
}
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΉΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ»Π΅Π½Π° ΠΈΠ· ΡΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΈ Π²ΡΠ·Π²Π°ΡΡ ΠΏΡΠΎΠ²Π°Π» ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π΅ΡΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΠΈΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌ:
let fahrenheitUnit = TemperatureUnit(symbol: "F")
if fahrenheitUnit != nil {
print("ΠΡΠ° Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°, Π° Π·Π½Π°ΡΠΈΡ Π½Π°ΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠ»Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ!")
}
// ΠΡΠ²Π΅Π΄Π΅Ρ "ΠΡΠ° Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°, Π° Π·Π½Π°ΡΠΈΡ Π½Π°ΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠ»Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ!"
let unknownUnit = TemperatureUnit(symbol: "X")
if unknownUnit == nil {
print("ΠΠ΄ΠΈΠ½ΠΈΡΠ° ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ Π·Π°ΡΠ΅ΠΉΠ»ΠΈΠ»ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ")
}
// ΠΡΠ²Π΅Π΄Π΅Ρ "ΠΠ΄ΠΈΠ½ΠΈΡΠ° ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ Π·Π°ΡΠ΅ΠΉΠ»ΠΈΠ»ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ"
ΠΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠ΅ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Ρ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ
ΠΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ Ρ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΉΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ init?(rawValue: ), ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ rawValue ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΡΠΈΠΏΠ° ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ»Π΅Π½ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ, ΠΈΠ»ΠΈ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠ±ΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π΅ΡΠ»ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΡΡΠ΅Π΄ΠΈ ΡΠ»Π΅Π½ΠΎΠ² ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΈΠΌΠ΅Ρ TemperatureUnit ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²ΡΡΠ΅ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠΈΠΏΠ° Character ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ init?(rawValue: ):
enum TemperatureUnit: Character {
case kelvin = "K", celsius = "C", fahrenheit = "F"
}
let fahrenheitUnit = TemperatureUnit(rawValue: "F")
if fahrenheitUnit != nil {
print("ΠΡΠ° Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°, Π° Π·Π½Π°ΡΠΈΡ Π½Π°ΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠ»Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ!")
}
// ΠΡΠ²Π΅Π΄Π΅Ρ "ΠΡΠ° Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°, Π° Π·Π½Π°ΡΠΈΡ Π½Π°ΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠ»Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ!"
let unknownUnit = TemperatureUnit(rawValue: "X")
if unknownUnit == nil {
print("ΠΠ΄ΠΈΠ½ΠΈΡΠ° ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ Π·Π°ΡΠ΅ΠΉΠ»ΠΈΠ»ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ.")
}
// ΠΡΠ²Π΅Π΄Π΅Ρ "ΠΠ΄ΠΈΠ½ΠΈΡΠ° ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ Π·Π°ΡΠ΅ΠΉΠ»ΠΈΠ»ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ."
Π Π°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠ΅Π³ΠΎΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°
ΠΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΉΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΊΠ»Π°ΡΡΠ°, ΡΡΡΡΠΊΡΡΡΡ, ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠ΅ΠΌΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΠΈΠ· ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠ»Π°ΡΡΠ°, ΡΡΡΡΠΊΡΡΡΡ, ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΉΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ Π½Π°Π²Π΅ΡΡ Π² ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΉΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°.
Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²Ρ Π΄Π΅Π»Π΅Π³ΠΈΡΡΠ΅ΡΠ΅ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°Π΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡΒ ΡΠΎ ΠΈ Π²Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°Π΅ΡΡΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π·Π° Π½ΠΈΠΌ, ΠΈ Π΄Π°Π»Π΅Π΅ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΆΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ.
ΠΠ°ΠΌΠ΅ΡΠΊΠ°
ΠΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΉΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°ΡΡ ΠΊ Π½Π΅ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠ΅ΠΌΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΎΠ²Π°Π»Π° Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ ΠΏΡΠΎΠ²Π°Π»ΠΈΡΡΡ.
ΠΡΠΈΠΌΠ΅Ρ Π½ΠΈΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ CartItem ΠΊΠ»Π°ΡΡΠ° Product. CartItem ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΠΊΠΎΡΠ·ΠΈΠ½Π΅ ΠΎΠ½Π»Π°ΠΉΠ½ Π·Π°ΠΊΠ°Π·Π°. CartItem ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Ρ ΡΠ°Π½Π΅Π½ΠΈΡΒ quantity ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ Π²ΡΠ΅Π³Π΄Π° ΠΈΠΌΠ΅Π»ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 1:
class Product {
let name: String
init?(name: String) {
if name.isEmpty { return nil }
self.name = name
}
}
class CartItem: Product {
let quantity: Int
init?(name: String, quantity: Int) {
if quantity < 1 { return nil }
self.quantity = quantity
super.init(name: name)
}
}
ΠΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΉΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π΄Π»Ρ CartItem Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ quantity 1 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅. ΠΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ quantity Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅, ΡΠΎ Π²ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΈ ΠΊΠΎΠ΄ Π΄Π°Π»ΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ. Π’Π°ΠΊ ΠΆΠ΅ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΉΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Product ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° name, ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ ΡΠ°Π²Π½ΠΎ ΠΏΡΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, ΡΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅ΡΡΡ.
ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ CartItem Ρ name Π½Π΅ ΡΠ°Π²Π½ΠΎΠΉ ΠΏΡΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΈ quantity ΡΠ°Π²Π½ΠΎΠΌΡ 1 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅, ΡΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ:
if let twoSocks = CartItem(name: "sock", quantity: 2) {
print("Item: \(twoSocks.name), quantity: \(twoSocks.quantity)")
}
// ΠΡΠ²Π΅Π΄Π΅Ρ "Item: sock, quantity: 2"
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ CartItem Ρ quantity ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ 0, ΡΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠ²Π°Π»ΠΈΡΡΡ:
if let zeroShirts = CartItem(name: "shirt", quantity: 0) {
print("Item: \(zeroShirts.name), quantity: \(zeroShirts.quantity)")
} else {
print("ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½ΠΎΠ»Ρ ΡΡΡΠ±ΠΎΠ»ΠΎΠΊ")
}
// ΠΡΠ²Π΅Π΄Π΅Ρ "ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½ΠΎΠ»Ρ ΡΡΡΠ±ΠΎΠ»ΠΎΠΊ"
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ CartItem Ρ name ΡΠ°Π²Π½ΡΠΌ ΠΏΡΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, ΡΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° Product Π²ΡΠ·ΠΎΠ²Π΅Ρ Π½Π΅ΡΠ΄Π°ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ:
if let oneUnnamed = CartItem(name: "", quantity: 1) {
print("Item: \(oneUnnamed.name), quantity: \(oneUnnamed.quantity)")
} else {
print("ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ²Π°Ρ Π±Π΅Π· ΠΈΠΌΠ΅Π½ΠΈ")
}
// ΠΡΠ²Π΅Π΄Π΅Ρ "ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ²Π°Ρ Π±Π΅Π· ΠΈΠΌΠ΅Π½ΠΈ"
ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠ΅Π³ΠΎΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΉΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° Π² ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ΅, ΡΠ°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ. ΠΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° Π½Π΅ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΌΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ°. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ²Π°Π»ΠΈΡΡΡΡ, Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ.
ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΉΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° Π½Π΅ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΌΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ°, ΡΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°ΡΡ Π² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° - ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΈΠ· ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°.
ΠΠ°ΠΌΠ΅ΡΠΊΠ°
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΉΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π½Π΅ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΌΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠΌ, Π½ΠΎ Π½Π΅ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ.
ΠΡΠΈΠΌΠ΅Ρ Π½ΠΈΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠ»Π°ΡΡ Document. ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΡΠ΅Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ name, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ ΠΎΡ ΠΏΡΡΡΠΎΠ³ΠΎ ΠΈΠ»ΠΈ nil, Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΏΡΡΡΡΡ ΡΡΡΠΎΠΊΡ:
class Document {
var name: String?
//ΡΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΠΎΠ·Π΄Π°Π΅Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ nil ΡΠ²ΠΎΠΉΡΡΠ²Π° name
init(){}
//ΡΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΠΎΠ·Π΄Π°Π΅Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Ρ Π½Π΅ ΠΏΡΡΡΡΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ name
init?(name: String) {
if name.isEmpty { return nil }
self.name = name
}
}
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ AutomaticallyNamedDocument ΠΊΠ»Π°ΡΡΠ° Document. AutomaticallyNamedDocument ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΎΠ±Π° Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π² Document. ΠΡΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ AutomaticallyNamedDocument Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ "[Untitled]" ΡΠ²ΠΎΠΉΡΡΠ²Π° name, Π΅ΡΠ»ΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΠΎΠ·Π΄Π°Π½ Π±Π΅Π· ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ ΠΏΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ° ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π° Π² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ init(name: ):
class AutomaticallyNamedDocument: Document {
override init() {
super.init()
self.name = "[Untitled]"
}
override init(name: String) {
super.init()
if name.isEmpty {
self.name = "[Untitled]"
} else {
self.name = name
}
}
}
AutomaticallyNamedDocument ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΉΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ init?(name: ) ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° Π½Π΅ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΌΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠΌ init(name: ). ΠΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ AutomaticallyNamedDocument ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΠΏΡΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ ΠΈΠ½Π°ΡΠ΅, ΡΠ΅ΠΌ Π΅Π³ΠΎ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡ, Π΅Π³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΠ²Π°Π»ΠΈΡΡΡΡ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π΅ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΡΡΡΡ Π²Π΅ΡΡΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠ΅ΠΉΡΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ Π²Π½ΡΡΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠ΅Π³ΠΎΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΠΈΠ· ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ°, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°ΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠ΅Π³ΠΎΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ ΠΊΠ»Π°ΡΡΠ° UntitledDocument Π²ΡΠ΅Π³Π΄Π° ΠΈΠΌΠ΅Π΅Ρ ΠΈΠΌΡ "[Untitled]", ΠΈ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΉΡΡ init(name: ) ΠΈΠ· ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
class UntitledDocument: Document {
override init() {
super.init(name: "[Untitled]")!
}
}
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠ° init(name: ) ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ Π² Π½Π΅Π³ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π° ΠΏΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ°. ΠΠ΄Π½Π°ΠΊΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, ΡΠΎ ΡΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΡΠΎΠ²Π°Π»ΠΈΡΡΡ, ΡΠΎ Π΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ.
ΠΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΉΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ init!
ΠΠ±ΡΡΠ½ΠΎ Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΉΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠΈΠΏΠ° ΠΏΡΡΠ΅ΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π·Π½Π°ΠΊΠ° Π²ΠΎΠΏΡΠΎΡΠ° ΠΏΠΎΡΠ»Π΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° init (init?). ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΡΠΎΠ²Π°Π»ΠΈΠ²Π°ΡΡΠΈΠΉΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π΅ΡΠ²Π½ΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠΈΠΏΠ°. Π‘Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π²ΠΌΠ΅ΡΡΠΎ Π²ΠΎΠΏΡΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠ° ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π²ΠΎΡΠΊΠ»ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ Π·Π½Π°ΠΊ ΠΏΠΎΡΠ»Π΅ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° init (init!).
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡ init? Π² init! ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, Π° ΡΠ°ΠΊ ΠΆΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ init? Ρ ΠΏΠΎΠΌΠΎΡΡΡ init! ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ. ΠΡ ΡΠ°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡ init Π² init!, Ρ ΠΎΡΡ, Π΄Π΅Π»Π°Ρ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ Π·Π°ΡΡΠ°Π²ΠΈΠΌ ΡΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ init! ΠΏΡΠΎΠ²Π°Π»ΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ.
Π’ΡΠ΅Π±ΡΠ΅ΠΌΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ
ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ required ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΠΊΠ»Π°ΡΡΠ°, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π±ΡΠ» ΠΎΠ±ΡΠ·Π°Π½ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ:
class SomeClass {
required init() {
//ΠΏΠΈΡΠ΅ΠΌ ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°
}
}
ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΈΡΠ°ΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ required ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΠΊΠ»Π°ΡΡΠ° Π΄Π»Ρ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ ΡΠ°ΠΊ ΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ ΠΏΠΎ ΡΠ΅ΠΏΠΎΡΠΊΠ΅. ΠΡ Π½Π΅ ΠΏΠΈΡΠ΅ΡΠ΅ override, ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΠ΅ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ:
class SomeSubclass: SomeClass {
required init() {
//ΠΏΠΈΡΠ΅ΠΌ ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ°
}
}
ΠΠ°ΠΌΠ΅ΡΠΊΠ°
ΠΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΠ²Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°, Π΅ΡΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠΌ.
ΠΠ°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π² Π²ΠΈΠ΄Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ
ΠΡΠ»ΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΡΠ΅Π±ΡΠ΅Ρ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈΠ»ΠΈ ΡΡΡΡΠΊΡΡΡΠΈΠ·Π°ΡΠΈΠΈ, ΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ, Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ»ΠΈ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°.
ΠΡΠΈ Π²ΠΈΠ΄Ρ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΠΏΠ°, ΡΡΠΎ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Π·Π°ΡΠ΅ΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π΅Π΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΡΡ Π΅ΠΌΠ° ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Ρ:
class SomeClass {
let someProperty: SomeType = {
// ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ SomeProperty Π²Π½ΡΡΡΠΈ ΡΡΠΎΠ³ΠΎ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ
// someValue Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΠΏΠ°, ΡΡΠΎ ΠΈ SomeType
return someValue
}()
}
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΊΡΡΠ²Π°ΡΡΠ΅ΠΉ ΡΠΈΠ³ΡΡΠ½ΠΎΠΉ ΡΠΊΠΎΠ±ΠΊΠΈ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ ΠΈΠ΄ΡΡ ΠΏΡΡΡΠ°Ρ ΠΏΠ°ΡΠ° ΠΊΡΡΠ³Π»ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΠΎ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠΎΠΏΡΡΡΠΈΡΠ΅ ΡΡΠΈ ΡΠΊΠΎΠ±ΠΊΠΈ, ΡΠΎ Π²Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΠ΅ ΡΠ°ΠΌΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ²Ρ, Π° Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ.
ΠΠ°ΠΌΠ΅ΡΠΊΠ°
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΎΡΡΠ°Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Π΅ΡΠ΅ Π½Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π°, Π½Π° ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ Π΄ΡΡΠ³ΠΈΡ ΡΠ²ΠΎΠΉΡΡΠ² ΠΈΠ· Π²Π°ΡΠ΅Π³ΠΎ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΡΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈΠΌΠ΅ΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡ ΡΠ°ΠΊ ΠΆΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠ²Π½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ self ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΌΠ΅ΡΠΎΠ΄ Π²Π°ΡΠ΅Π³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°.
ΠΡΠΈΠΌΠ΅Ρ Π½ΠΈΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΡΡΠΊΡΡΡΡ Chessboard, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΡΠ΅Ρ Π΄ΠΎΡΠΊΡ Π΄Π»Ρ ΠΈΠ³ΡΡ βΠ¨Π°ΡΠΊΠΈβ:

Π ΠΈΠ³ΡΡ ΡΠ°ΡΠΊΠΈ ΠΈΠ³ΡΠ°ΡΡ Π½Π° Π΄ΠΎΡΠΊΠ΅ 8Ρ 8, Ρ ΡΠ΅ΡΠ΅Π΄ΡΡΡΠΈΠΌΠΈΡΡ ΡΠ΅ΡΠ½ΡΠΌΠΈ ΠΈ Π±Π΅Π»ΡΠΌΠΈ ΠΊΠ»Π΅ΡΠΊΠ°ΠΌΠΈ. ΠΠ»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ³ΡΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΡΠΊΠΈ Π΄Π»Ρ ΡΡΠΎΠΉ ΠΈΠ³ΡΡ, ΡΡΡΡΠΊΡΡΡΠ° Chessboard ΠΈΠΌΠ΅Π΅Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ boardColors, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ ΠΈΠ· 64Β Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠΈΠΏΠ° Bool. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ true ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠ΅ΡΠ½ΡΠ΅ ΠΊΠ»Π΅ΡΠΊΠΈ, false - Π±Π΅Π»ΡΠ΅. ΠΠ΅ΡΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π»Π΅Π²ΡΠΉ Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠ³ΠΎΠ» Π΄ΠΎΡΠΊΠΈ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΏΡΠ°Π²ΡΠΉ Π½ΠΈΠΆΠ½ΠΈΠΉ ΡΠ³ΠΎΠ» Π΄ΠΎΡΠΊΠΈ.
ΠΠ°ΡΡΠΈΠ² boardColors ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠ²Π΅ΡΠΎΠ²:
struct Chessboard {
let boardColors: [Bool] = {
var temporaryBoard = [Bool]()
var isBlack = false
for i in 1...8 {
for j in 1...8 {
temporaryBoard.append(isBlack)
isBlack = !isBlack
}
isBlack = !isBlack
}
return temporaryBoard
}()
func squareIsBlackAt(row: Int, column: Int) -> Bool {
return boardColors[(row * 8) + column]
}
}
ΠΠΎΠ³Π΄Π° Π±Ρ Π²Ρ Π½ΠΈΒ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π½ΠΎΠ²ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Chessboard, Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, ΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ boardColors Π²ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ. ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΠ΅ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ Π²ΡΡΡΠΈΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² temporaryBoard ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΅Π³ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ Π²Π΅ΡΡ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ. ΠΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π² boardColors ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΡΠΎΡΠ΅Π½ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅ΡΠΎΠ΄ squareIsBlackAt:
let board = Chessboard()
print(board.squareIsBlackAt(row: 0, column: 1))
// ΠΡΠ²Π΅Π΄Π΅Ρ "true"
print(board.squareIsBlackAt(row: 7, column: 7))
// ΠΡΠ²Π΅Π΄Π΅Ρ "false"