Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
PHP Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ ΡΠΆΠ΅ ΡΠ΅Π³ΠΎΠ΄Π½Ρ (Π½Ρ, ΠΏΠΎΡΡΠΈ)
ΠΡΠ»ΠΈ ΡΠΏΡΠΎΡΠΈΡΡ PHP-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΊΠ°ΠΊΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ½ΠΈ Ρ ΠΎΡΡΡ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π² PHP, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π½Π°Π·ΠΎΠ²Π΅Ρ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ·ΡΠΊΠ° Π±ΡΠ»Π° Π±Ρ Π½Π°ΠΈΠ»ΡΡΡΠΈΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠΎ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΡ Π½Π°Π΄Π΅Π΅ΠΌΡΡ, ΡΡΠΎ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ Π½Π°ΡΠΈΠ²Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠ°Π½Π΅Ρ ΡΠ°ΡΡΡΡ ΡΠ·ΡΠΊΠ°, Π½ΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΆΠ΄Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ.
ΠΠ°Π½Π½Π°Ρ ΡΡΠ°ΡΡΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ, ΠΊΠ°ΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡΠΌΠΈ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠΎΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² Π² PHP ΡΠΆΠ΅ ΡΠ΅ΠΉΡΠ°Ρ.
ΠΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊΠ°: Π― ΡΠΌΡΡΠ»Π΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠ°Π»ΡΠΊΡ Ρ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ «Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ», Ρ.ΠΊ. Π½ΠΈ ΡΠ°Π·Ρ Π² ΠΎΠ±ΡΠ΅Π½ΠΈΠΈ Π½Π΅ ΡΠ»ΡΡΠ°Π», ΡΡΠΎΠ±Ρ ΠΊΡΠΎ-ΡΠΎ Π½Π°Π·ΡΠ²Π°Π» ΡΡΠΎ «ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ».
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅:
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ
ΠΠ°Π½Π½ΡΠΉ ΡΠ°Π·Π΄Π΅Π» ΠΏΠΎΠΊΡΡΠ²Π°Π΅Ρ ΠΊΡΠ°ΡΠΊΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ.
ΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ·ΡΠΊΠ°, Π½Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ β ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΈΡ Π² Π΄ΠΎΠΊΠ±Π»ΠΎΠΊΠ°Ρ .
ΠΡ ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ Π²ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². ΠΠ·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° ΡΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅ΠΌΡΡ ΡΠΈΠΏΠΎΠ²
ΠΡΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ°. ΠΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠΈΠΏΠ° Π΅Π³ΠΎ ΠΊΠ»ΡΡΠ΅ΠΉ, Π½Π°ΡΠ°Π²Π½Π΅ Ρ ΡΠΈΠΏΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠΈΠΆΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ:
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Psalm, PHPStan ΠΈ Phan ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ Π΄Π°Π½Π½ΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ ΠΈ ΡΡΡΡΡ Π΅Π΅ ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ°ΡΡΠΈ PhpStorm ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΠΌΠ΅Π΅Ρ.
ΠΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ ΡΠ³Π»ΡΠ±Π»ΡΡΡΡΡ Π² ΡΠ΅ΠΌΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ². Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠΎΠ±ΠΎΠΉ ΡΡΠ΅ΠΊ :
Psalm ΠΈ Phan ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ:
ΠΠΎΠΊΠ±Π»ΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΈΠΏΠ°Ρ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
Psalm, ΠΏΡΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°:
ΠΡΠ΄Π΅Ρ ΠΆΠ°Π»ΠΎΠ²Π°ΡΡΡΡ Π½Π° 2 ΡΡΡΠΎΠΊΡ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ Argument 1 of Stack::push expects User, string(hello) provided.
ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ PhpStorm Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄Π°Π½Π½ΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΌΡ ΠΏΠΎΠΊΡΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ°Ρ , Π½ΠΎ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ.
ΠΠ°ΠΊ Π²Π½Π΅Π΄ΡΠΈΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ Π±Π΅Π· ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠ·ΡΠΊΠ°
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ:
Π‘ΡΠ°Π½Π΄Π°ΡΡΠΈΠ·Π°ΡΠΈΡ
ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ PHP ΡΠΆΠ΅ Π½Π΅ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΈΠ½ΡΠ»ΠΎ Π΄Π°Π½Π½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² (ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Ρ):
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΡΠΎΡΡΡΠΌΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ, Π²ΡΠΎΠ΄Π΅ ΡΠ°ΠΊΠΎΠ³ΠΎ:
Psalm Π΅Π³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ, ΠΈ Π·Π½Π°Π΅Ρ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ Ρ ΠΊΠ»ΡΡΠ° ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°.
ΠΠ° ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ°ΡΡΠΈ, PhpStorm ΡΡΠΎΠ³ΠΎ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄Π°Π½Π½ΡΡ Π·Π°ΠΏΠΈΡΡ Ρ ΡΠΏΡΡΠΊΠ°Ρ ΠΌΠΎΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΡ PhpStorm-ΠΎΠΌ.
ΠΡΠ»ΠΈ Π±Ρ Ρ Π²ΡΠ±ΡΠ°Π» Psalm ΠΊΠ°ΠΊ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°, Ρ Π±Ρ ΠΌΠΎΠ³ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Psalm Π²ΡΠ΅ ΡΡΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ.
Π― ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π²ΡΡΠ΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ΅ΠΏΠ»ΠΎ Π²ΡΡΡΠ΅ΡΠ΅Π½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΡΡ PHP-ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°. Π’ΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π²ΡΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π°Ρ . Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½ΠΈ PHPStan, Π½ΠΈ PhpStorm Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½Ρ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Psalm ΠΈ Phan. ΠΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡ ΠΎΠΆΠ΅, Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΊΠΎΠΏΠ½Π΅ΡΠ΅ Π³Π»ΡΠ±ΠΆΠ΅, ΡΠΎ ΠΏΠΎΠΉΠΌΠ΅ΡΠ΅, ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ.
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ΄Π° ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΠΎΠΌ.
ΠΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Π΅ΡΡΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ Π² ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠΈ ΠΎ ΡΠΎΡΠΌΠ°ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ²:
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ
Psalm ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ². Phan Π²ΡΠΎΠ΄Π΅ ΠΊΠ°ΠΊ, ΡΠΎΠΆΠ΅.
Π― ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ PhpStorm Π²Π½Π΅Π΄ΡΠΈΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠΈ ΠΎ Π΅Π΄ΠΈΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠΎΡΠΎΠ½Π½Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°
ΠΠ°Π²Π΅ΡΡΠ°ΡΡΠ°Ρ ΡΠ°ΡΡΡ Π³ΠΎΠ»ΠΎΠ²ΠΎΠ»ΠΎΠΌΠΊΠΈ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² β ΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ.
ΠΠ°Π΄Π΅ΡΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ°Π½Π΄Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² ΠΏΠΎΡΠ²ΠΈΡΡΡ, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π²Π½Π΅Π΄ΡΡΡ Π΅Π³ΠΎ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ Π½Π΅ ΡΡΠ°Π·Ρ. Π§Π°ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, Π½ΠΎ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² Π΄Π»Ρ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ ΡΠΈΠΏΠΎΠ² Π² Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ°Ρ Π²Π°ΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π±ΡΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΡΠΈ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ.
Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ Π²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΠΈΡΠ°ΡΡΡΡ Π½Π° ΡΠ°Π±ΠΎΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ²?
Π ΡΡΠ°ΡΡΡΡ, Π΄Π°Π½Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΆΠ΅ ΡΠ΅ΡΠ΅Π½Π°, ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠΈΠΌ ΡΠ²Π»ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ-Π·Π°Π³Π»ΡΡΠΊΠΈ. Psalm, Phan ΠΈ PhpStorm ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π·Π°Π³Π»ΡΡΠΊΠΈ.
ΠΠ°Π³Π»ΡΡΠΊΠΈ β ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΡΠΈΠ³Π½Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², Π½ΠΎ Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠ΅ ΠΈΡ . ΠΠΎΠ±Π°Π²Π»ΡΡ Π΄ΠΎΠΊΠ±Π»ΠΎΠΊΠΈ Π² Π·Π°Π³Π»ΡΡΠΊΠΈ, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΈΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΊΠ»Π°ΡΡ ΡΡΠ΅ΠΊΠ° Π±Π΅Π· ΡΠ°ΠΉΠΏΡ ΠΈΠ½ΡΠΎΠ² ΠΈ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ², Π²ΡΠΎΠ΄Π΅ ΡΠ°ΠΊΠΎΠ³ΠΎ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ»-Π·Π°Π³Π»ΡΡΠΊΡ, ΠΈΠΌΠ΅ΡΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, Π½ΠΎ Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠΊΠ±Π»ΠΎΠΊΠΎΠ² ΠΈ Π±Π΅Π· ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΠΎΠ³Π΄Π° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ Π²ΠΈΠ΄ΠΈΡ ΠΊΠ»Π°ΡΡ ΡΡΠ΅ΠΊΠ°, ΠΎΠ½ Π±Π΅ΡΠ΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΠΏΠ°Ρ ΠΈΠ· Π·Π°Π³Π»ΡΡΠΊΠΈ, Π° Π½Π΅ ΠΈΠ· ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΡΡΠΎ Π΄Π΅Π»ΠΈΡΡΡΡ ΠΊΠΎΠ΄ΠΎΠΌ Π·Π°Π³Π»ΡΡΠ΅ΠΊ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠ΅Π· composer) Π±ΡΠ»Π° Π±Ρ ΠΊΡΠ°ΠΉΠ½Π΅ ΠΏΠΎΠ»Π΅Π·Π½Π°, Ρ.ΠΊ. ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ»Π° Π±Ρ Π΄Π΅Π»ΠΈΡΡΡΡ ΠΏΡΠΎΠ΄Π΅Π»Π°Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΎΠΉ.
ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠΈΠ΅ ΡΠ°Π³ΠΈ
Π‘ΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Ρ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΎΠΉΡΠΈ ΠΎΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΡ.
ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π»ΡΡΡΠΈΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ PSR ΠΏΡΠΎ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ?
ΠΠ»ΠΈ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, ΡΠΎΠ·Π΄Π°ΡΠ΅Π»ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ², PhpStorm, Π΄ΡΡΠ³ΠΈΡ IDE ΠΈ ΠΊΡΠΎ-Π»ΠΈΠ±ΠΎ ΠΈΠ· Π»ΡΠ΄Π΅ΠΉ, ΠΏΡΠΈΡΠ°ΡΡΠ½ΡΡ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ PHP (Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ) ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΌ Π±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ Π²ΡΠ΅.
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ°Π½Π΄Π°ΡΡ ΠΏΠΎΡΠ²ΠΈΡΡΡ, Π²ΡΠ΅ ΡΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΡ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ Pull Request’Ρ. Π ΡΠ°ΠΌ, Π³Π΄Π΅ ΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΈΡΠ°ΡΡ ΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ Π·Π°Π³Π»ΡΡΠΊΠ°ΠΌΠΈ.
ΠΠΎΠ³Π΄Π° Π²ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π΅Π»Π°Π½ΠΎ, ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π²ΡΠΎΠ΄Π΅ PhpStorm Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΏΠΎΠΊΠ° ΠΏΠΈΡΠ΅ΠΌ ΠΊΠΎΠ΄. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ Π½Π°ΡΠ΅Π³ΠΎ CI Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π³Π°ΡΠ°Π½ΡΠΈΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΈ Π² PHP (Π½Ρ, ΠΏΠΎΡΡΠΈ).
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ
ΠΡΡΡ ΡΡΠ΄ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ. PHP β ΡΡΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΡΠΉ ΡΠ·ΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄Π΅Π»Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ «ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈΡ » Π²Π΅ΡΠ΅ΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΈΡ . ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π³ΠΈΠΈ PHP, ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΡΠΈΡΡΡΡ ΡΠ°ΠΊ, ΡΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΡ Π½Π΅ ΡΠΌΠΎΠ³ΡΡ ΡΠΎΡΠ½ΠΎ ΠΈΠ·Π²Π»Π΅ΡΡ Π²ΡΠ΅ ΡΠΈΠΏΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΡΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΡΠΈΠΏΡ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½Ρ, ΡΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π½Π΅ ΡΠΌΠΎΠ³ΡΡ Π²ΠΎ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ.
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° β ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π²Π°ΡΠ΅ΠΉ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ. ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠΈΡΡΡΠΉ ΠΊΠΎΠ΄, ΡΠΎ Π½Π΅ ΡΡΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π³ΠΈΠΈ.
ΠΠΎΡΠ΅ΠΌΡ Π±Ρ Π²Π°ΠΌ ΠΏΡΠΎΡΡΠΎ Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ Π² ΡΠ·ΡΠΊ?
ΠΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π½Π°ΠΈΠ»ΡΡΡΠΈΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ. Π£ PHP ΠΎΡΠΊΡΡΡΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΈ Π½ΠΈΠΊΡΠΎ Π½Π΅ ΠΌΠ΅ΡΠ°Π΅Ρ Π²Π°ΠΌ ΡΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ!
Π§ΡΠΎ, Π΅ΡΠ»ΠΈ ΠΌΠ½Π΅ Π½Π΅ Π½ΡΠΆΠ½Ρ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ?
ΠΡΠΎΡΡΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠΉΡΠ΅ Π²ΡΠ΅ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅. ΠΠ΄Π½ΠΎ ΠΈΠ· Π³Π»Π°Π²Π½ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² PHP Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ Π³ΠΈΠ±ΠΎΠΊ Π² Π²ΡΠ±ΠΎΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅. Π‘ ΠΎΠ΄Π½ΠΎΡΠ°Π·ΠΎΠ²ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π΄ΡΠΌΠ°ΡΡ ΠΎ ΡΠ°ΠΊΠΈΡ Π²Π΅ΡΠ°Ρ , ΠΊΠ°ΠΊ ΡΠ°ΠΉΠΏΡ ΠΈΠ½ΡΠΈΠ½Π³. Π Π²ΠΎΡ Π² Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ ΡΡΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π²ΡΠ΅ΠΌ Π΄ΠΎΡΠΈΡΠ°Π²ΡΠΈΠΌ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°. ΠΡΠ΄Ρ ΡΠ°Π΄ Π²Π°ΡΠΈΠΌ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΡΠΌ Π² ΠΠ‘.
UPD: ghost404 Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ ΠΎΡΠΌΠ΅ΡΠΈΠ», ΡΡΠΎ PHPStan Ρ Π²Π΅ΡΡΠΈΠΈ 0.12.x ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ psalm Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ
Π Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ°Ρ Π² PHP ΠΈ ΠΎ ΡΠΎΠΌ, Π·Π°ΡΠ΅ΠΌ ΠΎΠ½ΠΈ Π½Π°ΠΌ Π½ΡΠΆΠ½Ρ
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ Π² PHP. ΠΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΅ΡΠ΅Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ RFC, Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΠ΅Π³ΠΎ Π² PHP Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ. ΠΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ³Π»ΡΠ±Π»ΡΡΡΡΡ Π² ΡΠΎ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ, Π½ΠΎ ΠΊ ΠΊΠΎΠ½ΡΡ ΡΡΠ°ΡΡΠΈ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ½ΡΡΡ, ΡΠ΅ΠΌ ΠΎΠ½ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ°ΠΊ ΠΆΠ΄ΡΡ ΠΈΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π² PHP.
ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π²Π°Ρ Π΅ΡΡΡ Π½Π°Π±ΠΎΡ Π±Π»ΠΎΠ³-ΠΏΠΎΡΡΠΎΠ², ΡΠΊΠ°ΡΠ°Π½Π½ΡΡ ΠΈΠ· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π°Π½Π½ΡΡ .
ΠΡΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ ΡΠΎΠ»Ρ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² ΠΈ ΡΠΎ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΠΊ Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² Π½ΠΈΡ . Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠ΅ ΠΏΡΠΈ ΡΠ°ΠΊΠΎΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΈ.
Π¦Π΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ (Data integrity)
ΠΡΠ»ΠΈ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠΉΡΠΈ ΠΏΠΎ Π½Π°ΡΠ΅ΠΌΡ Π½Π°Π±ΠΎΡΡ ΠΏΠΎΡΡΠΎΠ², ΡΠΎ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΡΠΈΠ±ΠΊΡ.
Π‘ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π΅ΡΡΡ Π΅ΡΡ ΠΎΠ΄Π½Π° ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ. ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π½ΡΠΆΠ΅Π½ ΠΌΠ°ΡΡΠΈΠ² Π±Π»ΠΎΠ³-ΠΏΠΎΡΡΠΎΠ²:
ΠΠΎ Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ ΡΡΠΎΡΠΎΠ½Π°: Π²Π°ΠΌ ΠΏΡΠΈΠ΄ΡΡΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΌΠ°ΡΡΠΈΠ²Ρ.
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ
ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ, ΡΡΠΎ Π»ΡΡΡΠ΅ Π·Π°ΡΠ°Π½Π΅Π΅ Π·Π½Π°ΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ ΠΌΠ°ΡΡΠΈΠ² ΡΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΡΠ΅ΠΌ ΠΏΠΎΡΠΎΠΌ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠΈΠΊΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· Π²ΡΡΡΠ½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠΈΠΏΡ.
ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΠ³Π½Π°ΡΡ Π½Π° Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ°Ρ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΈΡ ΠΏΠΎΠΊΠ° Π½Π΅Ρ, ΡΠ°ΠΊ ΡΡΠΎ ΠΎΡΡΠ°ΡΡΡΡ Π»ΠΈΡΡ Π³Π°Π΄Π°ΡΡ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π±Π΅Π·ΡΠΌΠΈΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ, ΡΡΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ PHP, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π½Π° Π‘, β ΡΡΠΎ Π»ΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΠΊΡΡΠΈ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°.
ΠΠ²ΡΠΎΠ·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ (Code completion)
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ PHP 7.0 ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΡΠΈΠΏΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π° Π² PHP 7.1 ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ ΡΠ»ΡΡΡΠ΅Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ void ΠΈ ΡΠΈΠΏΠΎΠ², Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ null. ΠΠΎ ΠΌΡ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠΎΠ±ΡΠΈΡΡ IDE, ΡΡΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΊ PHPDoc.
ΠΠ΅ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΡ Π² ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈ Π²Π»ΠΈΡΠ½ΠΈΠΈ ΡΠ°Π·Π±ΡΠΎΡΠ°Π½Π½ΠΎΡΡΠΈ ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ Π·Π°ΡΡΠ°Π²ΠΈΠ»ΠΈ ΠΌΠ΅Π½Ρ Π΄ΠΎΠ»Π³ΠΎ ΠΈΡΠΊΠ°ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΡΡΠ΅.
ΠΠ° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΡΠ°ΠΊΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ β Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ. ΠΠ΅ Π±ΡΠ΄Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΠΏΠΈΡΡΠ²Π°ΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡΡ, ΠΎΠ± ΡΡΠΎΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΈΡΠ°ΡΡ Π² RFC. ΠΠΎ Ρ ΠΏΡΠΈΠ²Π΅Π΄Ρ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠΈ Π²ΡΡΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π²ΡΠ΅Π³Π΄Π° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΠΆΠ½ΠΎΠ΅ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² ΠΏΠΎΠΊΠ° ΡΡΠΎ Π½Π΅Ρ Π² PHP. RFC ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ PHP 7.1, ΠΎ Π΅Π³ΠΎ Π±ΡΠ΄ΡΡΠ΅ΠΌ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. ΠΠΈΠΆΠ΅ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ Iterator ΠΈ ArrayAccess, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Ρ PHP 5.0. Π ΠΊΠΎΠ½ΡΠ΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΡΠΌ ΠΏΡΠΈΠΌΠ΅Ρ Ρ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ°ΠΌΠΈ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠΎΠ±ΠΎΠΉ ΡΠΈΠΊΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ:
Π Π°Π±ΠΎΡΠ°Π΅Ρ! ΠΠ°ΠΆΠ΅ Π±Π΅Π· Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ²! ΠΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°: ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΠ΅. ΠΠ°ΠΌ Π½ΡΠΆΠ½Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΊΠ»Π°ΡΡΡ Π±ΡΠ΄ΡΡ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΏΠΎΠΌ.
ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ Π±ΠΎΜΠ»ΡΡΠΈΠΌ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎΠΌ, Β«Π·Π»ΠΎΡΠΏΠΎΡΡΠ΅Π±ΠΈΠ²Β» ΠΏΠΎΠ·Π΄Π½ΠΈΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΠ²Π½ΡΠΌ API PHP. ΠΠΎ Π²Π°ΠΌ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠ»Π°ΡΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°.
ΠΠ΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½ΡΠ΅ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ
Π Π²ΡΡ! ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ runtime. Π ΠΎΠΏΡΡΡ ΠΆΠ΅, ΠΊΠ»Π°ΡΡ GenericCollection ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π±ΡΠ°ΡΡ Π΄Π»Ρ Π»ΡΠ±ΡΡ ΡΠΈΠΏΠΎΠ².
ΠΠ°ΡΠ΅ΠΌ Go Π½ΡΠΆΠ½Ρ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ
ΠΠ²ΡΠΎΡΠΈΠ·ΡΠΉΡΠ΅ΡΡ
ΠΠ°ΡΠ΅ΠΌ Go Π½ΡΠΆΠ½Ρ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ
ΠΡΠΎ ΡΡΠ°ΡΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Go ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΡΠΌ ΡΠ°Π³ΠΎΠΌ. ΠΠ΄Π΅ΡΡ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄ΡΡ Π·Π°ΡΡΠΎΠ½ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ΄ΡΡΡΡ Π²Π½Π΅ΡΡΠΈ Π² ΡΠ·ΡΠΊ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄ΡΠΌΠ°Π½Π½ΠΎΠ³ΠΎ.
ΠΠΎ ΠΎΡΠ·ΡΠ²Π°ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² β ΠΎΠ΄Π½Π° ΠΈΠ· Π³Π»Π°Π²Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Go.
ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Ρ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ?
Π§ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΊΠΎΠ΅ Β«Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ²Β» ΠΈ Π·Π°ΡΠ΅ΠΌ ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Π½ΡΠΆΠ½ΠΎ?
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π² ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΠΎΠΉ ΡΠΎΡΠΌΠ΅, Ρ ΡΠ°ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΠΈΠΏΠΎΠ².
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΡΠ΅Π·Π°. ΠΡΠΎ, ΡΠ°Π·ΡΠΌΠ΅Π΅ΡΡΡ, Π½Π΅ ΡΠ° Π·Π°Π΄Π°ΡΠ°, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°ΡΡΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ, Π½ΠΎ ΠΈ Π½ΠΈΡΠ΅Π³ΠΎ ΠΈΠ· ΡΡΠ΄Π° Π²ΠΎΠ½ Π²ΡΡ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΡΡΠΎ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ².
ΠΡΠΎΡΡΠ΅ΠΉΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ, Π½ΠΎ ΠΈ Π² Π½Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ.
ΠΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Π½Π°Π΄ΠΎ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΠ΅Π·Π° Π½Π° 1.
Π’Π΅ΠΏΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ ΡΡΡΠΎΠΊ.
Π ΡΠ·ΡΠΊΠ°Ρ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Python ΠΈΠ»ΠΈ JavaScript, ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ, Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ°Ρ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠ° Go ΡΠ°ΠΊΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΡΠ·ΡΠΊ ΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΡΠΈΠΏΠ° ΡΡΠ΅Π·Π° ΠΈ ΡΠΈΠΏΠ° Π΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ C++, Java, Rust ΠΈΠ»ΠΈ Swift, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ, ΡΡΠΎΠ±Ρ ΡΡΡΡΠ°Π½ΠΈΡΡ ΡΡΠΎ Π·Π°ΡΡΡΠ΄Π½Π΅Π½ΠΈΠ΅.
ΠΠ°ΠΊ Go ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡΡΡ Π±Π΅Π· Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² ΡΠ΅ΠΉΡΠ°Ρ
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ
Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ Π² Go ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΉ ΡΠΈΠΏ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΡΠ΅Ρ ΡΠΈΠΏΠΎΠ² ΡΡΠ΅Π·ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π½Π°ΠΌΠ΅ΡΠ΅Π²Π°Π΅ΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ sort.Sort ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² Π² Go ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ². ΠΠ½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΎΠ±ΡΠΈΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² ΠΈ Π²ΡΡΠ°Π·ΠΈΡΡ ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ ΡΠΈΠΏΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠ΅ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ.
ΠΠΎ ΠΏΡΠΈ ΡΠ°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΈΡΠ°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π²ΡΡΡΠ½ΡΡ. ΠΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠΈΠΏ Ρ ΠΏΠ°ΡΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΏΡΠΎΡΡΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΡΠ΅Π·Π°. Π ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π±ΡΠ΄ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½Ρ, ΠΌΡ Π½Π΅ ΠΈΠ·Π±Π°Π²ΠΈΠ»ΠΈΡΡ ΠΎΡ Π΄ΡΠ±Π»ΠΈΡΡΡΡΠ΅Π³ΠΎΡΡ ΠΊΠΎΠ΄Π°, ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π²ΠΈΠ½ΡΠ»ΠΈ Π΅Π³ΠΎ. Π Ρ ΠΎΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ², ΠΏΠΎΠ»Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΠ½ΠΈ Π½Π΅ Π΄Π°ΡΡ.
ΠΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
ΠΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ±, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π°ΠΌ Π½Π΅ ΠΏΡΠΈΠ΄ΡΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ β ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π² ΡΠ°ΠΌΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΠΏΠΎΠ². Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π² Go, Π½ΠΎ, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, Π² ΡΠ·ΡΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΌΠ΅ΡΠΎΠ΄ Index, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ. ΠΠ΄Π½Π°ΠΊΠΎ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΡΠΏΠΎΡΠΎΠ± Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅, ΠΌΠ΅ΡΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΏΡΡΡΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠΉ ΡΠΈΠΏ, Π° Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΏΠΎΡΠ΅ΡΡΠ΅ΠΌ Π²ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΠΌΡ Π½Π΅ ΡΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° ΡΡΠ΅Π·Π° Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΈΠ»ΠΈ map Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠ΅Π·. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ Go ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. Π Π½Π΅ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΡΠ΅ΡΡΡΡ ΡΡΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π΄ΠΈ ΠΏΠ»ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°ΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ.
ΠΠ°ΠΊΠ΅Ρ reflect
ΠΡΡ ΠΎΠ΄ΠΈΠ½ Π²Π°ΡΠΈΠ°Π½Ρ β Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Reverse Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ° reflect, Π½ΠΎ ΡΡΠΎ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈ Π½Π΅ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΠΎ, ΡΡΠΎ ΠΏΠΎΡΡΠΈ Π½ΠΈΠΊΡΠΎ ΡΠ°ΠΊ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΡΠΊΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΈ Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ.
ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΊΠΎΠ΄Π°
ΠΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΡΡΠΎΠ»Ρ Π½Π΅ΡΠ΄ΠΎΠ±Π½Ρ, ΡΡΠΎ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΡΠ΅Π·Π° ΠΏΡΠΎΡΡΠΎ ΠΏΠΈΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ»Π°Π½ΠΈΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. ΠΠ°ΡΠ΅ΠΌ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠ»ΠΎΠ²ΠΈΡΡ Π²ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π²ΡΠΎΠ΄Π΅ ΡΠΎΠΉ, ΡΡΠΎ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅.
ΠΠ΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡΠ½Π΅ΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠ°Π΄ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΏΠΎΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°? ΠΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΏΠΎΡΠΎΠ± Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡΡΡΠ΅!
ΠΠ»Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΡΡΠΎΡ ΡΠΏΠΎΡΠΎΠ± β Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ. ΠΠ°ΠΊ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ°ΠΌΠΎΠΌ Π½Π°ΡΠ°Π»Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡ ΡΠΈΠΏΡ, Π° ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎ, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ.
Π§ΡΠΎ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π½Π΅ΡΡΠΈ Π² Go Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΠΎΠ΄ Β«Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ°ΠΌΠΈΒ» ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡ ΠΊΡΡΡ ΡΠ°Π·Π½ΡΡ Π²Π΅ΡΠ΅ΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² C++ ΡΡΠΈΠΌ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠΌ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ ΡΠ°Π±Π»ΠΎΠ½Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΠΏΠ΅ΠΊΡΡΠΎΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΏΠΎΠ΄ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ°ΠΌΠΈ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ ΡΠΎΠ²Π½ΠΎ ΡΠΎ, ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π²ΡΡΠ΅.
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΡΡΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌΠΎ, Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΡΠ°ΠΌ ΡΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ Ρ ΠΎΠ³Π»ΡΠ΄ΠΊΠΎΠΉ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² C++.
Π Π²ΠΎΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Go Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΈΠ»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ:
ΠΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠΈΡΡ, ΠΏΡΠΈ ΡΡΠΎΠΌ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΈΡ Π½Π° Go Π½Π΅ ΡΠ°ΠΊ ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΠΎ ΠΊΡΠ΄Π° Π»ΡΡΡΠ΅ Π±ΡΠ»ΠΎ Π±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π΄ΠΈΠ½ΠΎΠΆΠ΄Ρ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ Π»ΡΠ±ΡΡ ΡΠΈΠΏΠΎΠ².
Π£ΡΠΎΡΠ½ΠΈΠΌ, ΡΡΠΎ ΡΡΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΏΡΠΈΠΌΠ΅ΡΡ, Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΏΡΠΎΡΠ΅ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π΅Π΅ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΊΡΠ΄Π° Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ ΡΠ°Π½Π΅Π΅, ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² Π·Π°ΡΡΠΎΠ½Π΅Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½ΠΎ ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ .
Π Go Π²ΡΡΡΠΎΠ΅Π½Ρ Π΄Π²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ: ΡΡΠ΅Π·Ρ ΠΈ map βΡ. ΠΡΠΈ ΡΡΡΡΠΊΡΡΡΡ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ , ΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠ° Π΄Π»Ρ Ρ ΡΠ°Π½ΡΡΠΈΡ ΡΡ ΠΈ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠ½Π°ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΡΡΠΈΡ ΡΡΡΡΠΊΡΡΡΠ°Ρ Ρ ΡΠ°Π½ΡΡΡΡ Π±Π΅Π· ΠΎΠΏΠΎΡΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π² []int Ρ ΡΠ°Π½ΡΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ΅Π»ΡΠ΅ ΡΠΈΡΠ»Π°, Π° Π½Π΅ ΡΠ΅Π»ΡΠ΅ ΡΠΈΡΠ»Π°, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.
Π‘ΡΠ΅Π·Ρ ΠΈ ΠΊΠ°ΡΡΡ β Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°ΡΡΠΈΠ΅ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π½ΠΎ Π½Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠ΅. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅ΡΡ Π΄ΡΡΠ³ΠΈΡ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ:
ΠΠΎΠ»ΡΡΠΈΠ² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΡΠ΅ ΡΠΈΠΏΡ, ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ , ΡΠΎΡ ΡΠ°Π½ΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΡΠ΅Π·ΠΎΠ² ΠΈ map βΠΎΠ²: ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠΈΠΏ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΡΡ Π² Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π° ΡΠ°ΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ Π±Π΅Π· ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ². Π ΠΊ ΡΡΠΈΠΌ ΡΡΡΡΠΊΡΡΡΠ°ΠΌ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠ΅ ΡΠ°Π½ΡΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ.
ΠΡΠ΅ ΡΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ Π±ΡΠ΄ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Reverse : ΠΎΠ±ΠΎΠ±ΡΡΠ½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π΅Π΄ΠΈΠ½ΠΎΠΆΠ΄Ρ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅, ΡΠ°Π·ΠΌΠ΅ΡΡΠ½Π½ΡΠ΅ Π² ΠΏΠ°ΠΊΠ΅ΡΠ°Ρ ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ ΡΡΠ΅Π·Ρ ΠΈ ΠΊΠ°ΡΡΡ, ΡΠΎ Π΅ΡΡΡ Ρ ΡΠ°Π½ΠΈΡΡ Π½Π΅ ΡΠΈΠΏ ΠΏΡΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π° Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΡΠΈΠΏΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
ΠΡΠ°ΠΊ, ΡΠ΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΏΠΎΠ»ΡΡΠΈΡ Go ΠΎΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ². ΠΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π½Π°ΠΌ ΠΎΡΠ»ΠΈΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄, Π΄Π΅Π»ΠΈΡΡΡΡ ΠΈΠΌ, ΡΠΏΡΠΎΡΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
Π§Π΅ΠΌ ΠΏΡΠΈΠ΄ΡΡΡΡ ΠΏΠΎΠΆΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ
Π‘ΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎΡΡΠΈ ΡΠ°Π΄ΠΈ ΡΡΠΎΠΈΡ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π·Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΡΠ·ΡΠΊΠ΅ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΠ»Π°ΡΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΠ΅Π½Ρ. Π Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² Π² Go ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎ ΡΡΠ»ΠΎΠΆΠ½ΠΈΡ ΡΠ·ΡΠΊ. ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ Π»ΡΠ±ΡΠΌΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ, Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ³ΠΎΠ΄Ρ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠ΅ΡΠΈ.
ΠΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Go ΡΠΎΠ·Π΄Π°ΡΠ΅Π»ΠΈ ΡΡΠ°Π²ΠΈΠ»ΠΈ ΡΠ΅Π»ΡΡ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ·ΡΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ , ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΡΠΎΡΠ΅ΡΠ°Π΅ΠΌΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ. Π‘ ΡΡΠΎΠΉ ΡΠ΅Π»ΡΡ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΠ°Π»Π°ΡΡ, Π° ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π΄ΠΎΡΡΠΈΠ³Π°Π»ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΡ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΉ. Π Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠΎΡ ΠΆΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠ°Π²ΠΈΠ», ΠΊΠΎΡΠΎΡΡΡ ΡΡΠΎΠΈΡ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ·ΡΠΊΠ°:
Π Π»ΡΠ±ΡΠΌ ΠΏΠΎΠΏΡΡΠΊΠ°ΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ Π² Go Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°. ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΈΠ΄Π΅Ρ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ²Π½Π΅ΡΡΠΈ Π² ΡΠ·ΡΠΊ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠΉ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠΎΡ ΡΠ°Π½ΠΈΠ² Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΡΡΡ.
ΠΠ°Π±ΡΠΎΡΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
Π ΡΡΠ°ΡΡΡΡ, Π΅ΡΡΡ ΡΠΏΠΎΡΠΎΠ± ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ. ΠΠΎ Π²ΡΠΎΡΠΎΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ ΡΡΠ°ΡΡΠΈ ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΡΠΌ ΠΊ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ Π² Go.
ΠΠ° Gophercon 2019 Π―Π½ ΠΡΠ½Ρ Π’ΡΠΉΠ»ΠΎΡ ΠΈ Π ΠΎΠ±Π΅ΡΡ ΠΡΠΈΠ·ΠΌΠ΅Ρ ΠΎΠ±Π½Π°ΡΠΎΠ΄ΠΎΠ²Π°Π»ΠΈ Π½Π°Π±ΡΠΎΡΠΊΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π ΡΡΠΎΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΏΠΎΠ»Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π·Π΄Π΅ΡΡ ΠΆΠ΅ ΠΌΡ ΠΎΡΠ²Π΅ΡΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ.
ΠΠΎΡ ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Reverse Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ²:
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΠ΅Π»ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡΡΠ°Π»ΠΎΡΡ ΡΠΎ ΠΆΠ΅, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π°ΡΡ Π»ΠΈΡΡ ΡΠΈΠ³Π½Π°ΡΡΡΠ°.
Π’ΠΈΠΏ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΡΠ΅Π·Π° Π²ΡΠ΄Π΅Π»Π΅Π½. Π’Π΅ΠΏΠ΅ΡΡ ΠΎΠ½ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Element ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΡΠΈΠΏΠ°. Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠΎ Π½Π΅ ΡΠ°ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΡΠ΅Π·Π°.
ΠΠ»Ρ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΡΠΈΠΏΠ° Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΠΈΠΏΠ° ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΌ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ.
Π ΡΡΠ°ΡΡΡΡ, Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΡΠΈΡΠ»ΠΈΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΠΈΠΏΠ°, ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° ΡΠΈΠΏΠ°Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΠΈΠΏΠ° ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΎΠΏΡΡΡΠΈΡΡ.
ΠΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ Ρ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠΌ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π²ΡΠ·ΠΎΠ² Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ.
ΠΠΎΠ½ΡΡΠ°ΠΊΡΡ
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Go β ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΈΠΏ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠΈΠΏΠ°. ΠΡΠΎΡ ΠΌΠ΅ΡΠ°-ΡΠΈΠΏ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈ ΡΠΈΠΏΠΎΠ² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ°ΠΌΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΠ°ΠΊΠΈΡ ΡΠΈΠΏΠΎΠ².
Π€ΡΠ½ΠΊΡΠΈΡ Reverse ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ ΡΡΠ΅Π·Π°ΠΌΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ Ρ ΡΠΈΠΏΠΎΠΌ Element β ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅, Π° ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π½Π° Go ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ Ρ Π»ΡΠ±ΡΠΌ ΡΠΈΠΏΠΎΠΌ. ΠΠ»Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Ρ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ°ΠΌΠΈ Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ Π΄Π»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄ΡΡΠ³ΡΡ ΡΡΠ½ΠΊΡΠΈΡ.
ΠΠΎΡ ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ Sequence :
ΠΡΠ»ΠΈ Π²Ρ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΠΎ ΡΡΠΌ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ Π½Π° GopherconβΠ΅ 2018, ΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΡΠΏΠΎΡΠΎΠ± ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠΎΠ² ΡΠΈΠ»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΠ»ΡΡ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΡΠ»ΠΈ ΠΎΡΠ·ΡΠ²Ρ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² ΠΊΠΎΠ½Π²Π΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΌ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΡ ΠΎΠ±ΡΠ°Π·ΡΠ° 2018 Π³ΠΎΠ΄Π° ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡ ΠΈΠ·Π»ΠΈΡΠ½Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ. ΠΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΡ ΠΊΡΠ΄Π° ΠΏΡΠΎΡΠ΅ ΠΏΠΈΡΠ°ΡΡ, ΡΠΈΡΠ°ΡΡ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ.
ΠΠΎΠ½ΡΡΠ°ΠΊΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΡΠΈΠΏΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠΈΠΏΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΠΈΡΠΎΠΊ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠΈΠΏΠΎΠ². ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½ΠΈ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠΈΠΏΠΎΠ².
ΠΠΎΠ½ΡΡΠ°ΠΊΡΡ Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ
ΠΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ: ΠΏΡΠΎΠΉΡΠΈ ΡΠ΅ΡΠ΅Π· ΡΡΠ΅Π·, Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ String Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΈ Π²Π΅ΡΠ½ΡΡΡ ΡΡΠ΅Π· ΡΡΡΠΎΠΊ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°.
ΠΠΎΠ½ΡΡΠ°ΠΊΡΡ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° ΡΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠΈΠΏΠ°:
ΠΠ°ΠΆΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ, Π½ΠΎ ΠΈ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠΈΠΏΠΎΠ².
Π£ΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΏΡ
Π₯ΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΡ Min Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΡΡΠΎ Π²Π½Π΅ΡΡΠΈ Π΅Ρ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ. ΠΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ:
ΠΠΎΠ½ΡΡΠ°ΠΊΡ Ordered Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ ΡΠΈΠΏ T Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠΌ ΡΠΈΠΏΠΎΠΌ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΠ°ΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ², ΠΊΠ°ΠΊ Β«ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ΅ΠΌΒ», Β«Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΌΒ» ΠΈ Ρ.Π΄.
ΠΠΎΠ½ΡΡΠ°ΠΊΡ Ordered β ΠΏΡΠΎΡΡΠΎ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ², Π²ΡΠΈΡΡΡ Π² ΡΠ·ΡΠΊ. ΠΡΠΎΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ Π»ΡΠ±ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΠΈΠΏ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ . Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ Π»ΡΠ±ΠΎΠΉ ΡΠΈΠΏ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Β«ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ΅ΠΌΒ».
ΠΡΡ ΠΎΠ΄ΠΈΡ, ΡΡΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΡΠΎΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΡ Π²ΡΠ΅ ΡΠΈΠΏΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Β«ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ΅ΠΌΒ», ΡΠ΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ΅ΡΠ°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ². Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ² Π² Go ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠΈΡΡΠ΅ ΡΠΈΠΏΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ.
Π’Π°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°. ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ Π΄Π»Ρ Π»ΡΠ±ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ°ΠΌΠΈ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΉ ΡΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ²Π½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ, Ρ ΠΊΠ°ΠΊΠΈΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ ΡΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΅Π³ΠΎ ΠΊΠΎΠ΄, Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ β ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π»ΠΈ ΠΎΠ½Π° Π΄Π»Ρ Π΅Π³ΠΎ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ .
ΠΠΆΠ΅Π½Π΅ΡΠΈΠΊ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² β Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ. Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ Π΄Π΅ΡΠ΅Π²ΠΎ Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΏΠΎ ΡΠΈΠΏΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π΅ Π±ΡΠ΄Π΅Ρ.
ΠΠ΅ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π»ΠΈΠ±ΠΎ Π½Π° ΡΠ»ΠΎΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ v, Π»ΠΈΠ±ΠΎ Π½Π° ΡΠΎ ΠΌΠ΅ΡΡΠΎ Π² Π΄Π΅ΡΠ΅Π²Π΅, Π³Π΄Π΅ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ.
ΠΠ΅ΡΠ°Π»ΠΈ ΡΡΡ Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½Ρ, ΡΡΠΎ Π»ΠΈΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ².
ΠΠΎΡ ΠΊΠΎΠ΄, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΠ³ΠΎ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈ Π΄Π΅ΡΠ΅Π²ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅:
Π ΡΡΠΎΡ ΠΊΠΎΠ΄ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π΅ΡΠ΅Π²ΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ.
Π’Π°ΠΊ ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ. Π Π°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Ρ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ°ΠΌΠΈ ΡΡΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Π°ΠΌ Π·Π°ΡΠ°ΡΡΡΡ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Ρ ΡΠΈΠΏΠ°ΠΌΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ° Ρ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΡΡΡΡΠΊΡΡΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ .
ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠΈΠ΅ ΡΠ°Π³ΠΈ
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»ΠΈ ΡΠ·ΡΠΊΠ° ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ², ΠΏΡΠΎΠ²Π΅ΡΡΡ ΡΠ²ΠΎΠΈ ΠΈΠ΄Π΅ΠΈ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅. ΠΡΠΎΡΠ΅ΡΡ ΠΈΠ΄ΡΡ Π½Π΅ ΡΠ°ΠΊ Π±ΡΡΡΡΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π½Π°Π΄Π΅ΡΠ»ΠΈΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΎΠΊ.
Π ΠΎΠ±Π΅ΡΡ ΠΡΠΈΠ·ΠΌΠ΅Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠ» ΡΠ°Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Go. Π‘ Π½Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΈΠΏΠΎΠ² Π² ΠΊΠΎΠ΄Π΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ² ΠΈ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠΎΠ². ΠΠ΅ΡΡΠΈΡ Π½Π΅ΠΏΠΎΠ»Π½Π°Ρ ΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π΄ΠΎΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ, Π½ΠΎ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ.
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ, ΡΡΠΎΠ±Ρ Π»ΡΠ΄ΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π»ΠΈ Ρ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ. ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠ½Π°ΡΠ°Π»Π° Π½Π΅ Π²ΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΆΠ΄ΡΡ ΠΎΡΠ·ΡΠ²ΠΎΠ² ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Ρ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠΈ, ΡΠ΅ΠΌ Π΄Π΅ΡΠ°Π»Π΅ΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°.
Π¦Π΅Π»Ρ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Π΅ΠΉ Go β Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΡΠ·ΡΠΊ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ, Π½Π΅ ΡΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠ·ΡΠΊΠ° ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΡΡΡ.
ΠΡΠΈΡΠ΅Π», ΡΠ²ΠΈΠ΄Π΅Π», ΠΎΠ±ΠΎΠ±ΡΠΈΠ»: ΠΏΠΎΠ³ΡΡΠΆΠ°Π΅ΠΌΡΡ Π² Java Generics
Java Generics β ΡΡΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ°ΠΌΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π·Π° Π²ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΡΠ·ΡΠΊΠ° Java. Β«ΠΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈΒ», Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Ρ Java 5, ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Java Collection Framework ΠΏΡΠΎΡΠ΅, ΡΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π΅Π΅. ΠΡΠΈΠ±ΠΊΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΠΏΠΎΠ², ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°ΡΡΡΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠ° ΠΈ ΡΠ°ΠΌ ΡΠ·ΡΠΊ Java ΡΡΠ°Π» Π΅ΡΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π΅Π΅. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΠΊΠ°ΠΆΡΡΡΡΡΡ ΠΏΡΠΎΡΡΠΎΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ², ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Ρ ΡΡΡΠ΄Π½ΠΎΡΡΡΠΌΠΈ ΠΏΡΠΈ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. Π ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎΠ± ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Java Generics, ΡΡΠΎΠ±Ρ ΡΡΠΈΡ ΡΡΡΠ΄Π½ΠΎΡΡΠ΅ΠΉ Ρ Π²Π°Ρ Π±ΡΠ»ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΠ΅. ΠΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π³ΡΡΡ Π² Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ°Ρ , ΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ΄Π½ΠΎΡΡΠ΅ΠΉ ΠΏΡΠΈ ΠΏΠΎΠ³ΡΡΠΆΠ΅Π½ΠΈΠΈ Π² ΡΠ΅ΠΌΡ.
Π Π°Π±ΠΎΡΠ° Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡΠΌΠΈ
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π±Π°Π½ΠΊΡ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΡΠΈΡΠ°ΡΡ ΡΡΠΌΠΌΡ ΡΠ±Π΅ΡΠ΅ΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡΡΠ΅ΡΠ°Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ². ΠΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Β«Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΎΠ²Β» ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΡΠΌΠΌΡ Π²ΡΠ³Π»ΡΠ΄Π΅Π» ΡΠ°ΠΊ:
Π‘ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Generics Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΡΠΈΠΏΠ° ΠΎΡΠΏΠ°Π»Π°:
ΠΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΡΡΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠΎΠΆΠ΅ ΠΎΡΠΏΠ°Π΄Π°Π»Π°. ΠΡΠ»ΠΈ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² ( casting ) Π±ΡΠ΄Π΅Ρ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
ΠΡΠΈΠ½ΡΠΈΠΏ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ
Π’ΠΈΠΏ | ΠΠΎΠ΄ΡΠΈΠΏ |
Number | Integer |
List | ArrayList |
Collection | List |
Iterable | Collection |
ΠΡΠΈΠΌΠ΅ΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΡΠΈΠΏ/ΠΏΠΎΠ΄ΡΠΈΠΏ
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π² Java:
ΠΠΎΠ²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΡ, ΠΊΠΎΠ½ΡΡΠ°Π²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΡ ΠΈ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΡ
ΠΠΎ Π΅ΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠ΅ΡΠ΅Π· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ arr ΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΌ ΡΡΠ΄Π° ΡΠΈΡΠ»ΠΎ 42, ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠΌ ArrayStoreException Π½Π° ΡΡΠ°ΠΏΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ 42 ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ ΡΡΡΠΎΠΊΠΎΠΉ, Π° ΡΠΈΡΠ»ΠΎΠΌ. Π ΡΡΠΎΠΌ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΠΊΠΎΠ²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Java: ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΠΈ ΡΡΠΎ-ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΠΎΠΌΠ°ΡΡΡΡ ΡΠΆΠ΅ Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅.
Β«ΠΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈΒ» ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠ½Ρ. ΠΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ:
Wildcards
ΠΡΠ΅Π³Π΄Π° Π»ΠΈ Generics ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΡ? ΠΠ΅Ρ. ΠΡΠΈΠ²Π΅Π΄Ρ ΠΏΡΠΈΠΌΠ΅ΡΡ:
ΠΡΠΎ ΠΊΠΎΠ²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΡ. List β ΠΏΠΎΠ΄ΡΠΈΠΏ List
extends B β ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π²Π΅ΡΡ
Π½Π΅ΠΉ Π³ΡΠ°Π½ΠΈΡΡ super B β ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π½ΠΈΠΆΠ½Π΅ΠΉ Π³ΡΠ°Π½ΠΈΡΡ Π³Π΄Π΅ B β ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π³ΡΠ°Π½ΠΈΡΡ 2. ΠΠΎΡΠ΅ΠΌΡ Π½Π΅Π»ΡΠ·Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° Π½ΠΈΠΆΠ΅? The Get and Put Principle ΠΈΠ»ΠΈ PECS (Producer Extends Consumer Super)ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ wildcard Ρ Π²Π΅ΡΡ Π½Π΅ΠΉ ΠΈ Π½ΠΈΠΆΠ½Π΅ΠΉ Π³ΡΠ°Π½ΠΈΡΠ΅ΠΉ Π΄Π°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΈΡΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΠΏΠΎΠ². ΠΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΠ°ΡΡ, Π² Π΄ΡΡΠ³ΠΎΠΉ β ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΏΠΈΡΡΠ²Π°ΡΡ (ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΏΠΈΡΠ°ΡΡ null Π΄Π»Ρ extends ΠΈ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Object Π΄Π»Ρ super ). Π§ΡΠΎΠ±Ρ Π±ΡΠ»ΠΎ Π»Π΅Π³ΡΠ΅ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΊΠΎΠΉ wildcard ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏ PECS β Producer Extends Consumer Super. ΠΈ Raw ΡΠΈΠΏΡΠΡΠ»ΠΈ ΠΌΡ ΠΎΠΏΡΡΡΠΈΠΌ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ Π·Π΄Π΅ΡΡ: ΠΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ Π²ΡΠ·Π²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄Π° Ρ Raw ΡΠΈΠΏΠ°, ΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠ΄Π°ΡΡ Π½Π°ΠΌ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Β«Unchecked callΒ». ΠΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΈΠΏ Raw ΡΠΈΠΏΡ, ΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠ΄Π°ΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Β«Unchecked assignmentΒ». ΠΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΈΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ, ΠΊΠ°ΠΊ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅, ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Wildcard CaptureΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΠΈΡΠΊΠ° Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎ Wildcard Capture ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π·Π΄Π΅ΡΡ ΠΈ Π·Π΄Π΅ΡΡ. ΠΡΠ²ΠΎΠ΄ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΏΠ°ΠΠΎΡ Π΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ· ΠΊΠ»Π°ΡΡΠ° Enum: Multiple bounds (ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ)ΠΡΠ²ΠΎΠ΄ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠΈΠΏΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²Π΅ΡΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ. Π ΡΠ»ΡΡΠ°Π΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π»Π΅Π²Π°Ρ Π³ΡΠ°Π½ΠΈΡΠ° (ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π·Π°ΡΠΈΡΠ°Π½ΠΈΡ (Type Erasure). Type ErasureΠΠ° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅ Π½ΠΈΠΆΠ΅ Π΄Π²Π° ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ: Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ»Π΅Π²Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ compile-time error, Π° ΡΠΏΡΠ°Π²Π° Π²ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΠΎΡΠ΅ΠΌΡ? Reifiable ΡΠΈΠΏΡΠΠΎΡΠ΅ΠΌΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΎΠ΄Π½ΠΈΡ ΡΠΈΠΏΠ°Ρ Π΄ΠΎΡΡΡΠΏΠ½Π°, Π° ΠΎ Π΄ΡΡΠ³ΠΈΡ Π½Π΅Ρ? ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠ·-Π·Π° ΠΏΡΠΎΡΠ΅ΡΡΠ° Π·Π°ΡΠΈΡΠ°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΠΏΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΡΠ΅ΡΡΠ½Π°. ΠΡΠ»ΠΈ ΠΎΠ½Π° ΠΏΠΎΡΠ΅ΡΡΠ»Π°ΡΡ, ΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ Π±ΡΠ΄Π΅Ρ ΡΠΆΠ΅ Π½Π΅ reifiable. Π’ΠΎ Π΅ΡΡΡ ΠΎΠ½Π° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Π°. ΠΡΠ»ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Π° β ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, reifiable. Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π΄Π΅Π»Π°ΡΡ Π²ΡΠ΅ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΏΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ β ΡΡΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΡ ΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΎΡΠ΅ΡΠΈΠ²ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠΈΠΏΠΎΠ² Java. Π’Π°ΠΊ ΡΠ΄Π΅Π»Π°Π»ΠΈ, Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. ΠΠ° ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΠΏΡΠΈΡΠ»ΠΎΡΡ ΠΏΠ»Π°ΡΠΈΡΡ β ΠΏΠΎΠ»Π½Π°Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ² Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°. Π Π΅ΡΠ΅ ΠΎΠ΄Π½Π° Π·Π°Π΄Π°ΡΠΊΠ°. ΠΠΎΡΠ΅ΠΌΡ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½ΠΈΠΆΠ΅ Π½Π΅Π»ΡΠ·Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ Exception? ΠΠ°ΠΆΠ΄ΠΎΠ΅ catch Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² try-catch ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠΈΠΏ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΡΡΠΎ ΡΠ°Π²Π½ΠΎΡΠΈΠ»ΡΠ½ΠΎ instanceof), ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠΈΠΏ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Reifiable. ΠΠΎΡΡΠΎΠΌΡ Throwable ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΡΠΈΠΏΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Ρ. Unchecked WarningsΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ΄Π°ΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Unchecked Warning β ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π΅ ΡΠΌΠΎΠ³ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠΎΠ²Π΅Π½Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΡΠΈΡ ΡΠΈΠΏΠΎΠ². ΠΡΠΎ Π½Π΅ ΠΎΡΠΈΠ±ΠΊΠ°, Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΡΠ°ΠΊ ΡΡΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ. ΠΠΎ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ΅-ΡΠ°ΠΊ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ. Heap PollutionΠΠ°ΠΊ ΠΌΡ ΡΠΏΠΎΠΌΡΠ½ΡΠ»ΠΈ ΡΠ°Π½Π΅Π΅, ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° Raw ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ Β«Unchecked assignmentΒ». ΠΡΠ»ΠΈ ΠΌΡ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌ Π΅Π³ΠΎ, ΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΠΈΡΡΠ°ΡΠΈΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ » Heap Pollution » (Π·Π°Π³ΡΡΠ·Π½Π΅Π½ΠΈΠ΅ ΠΊΡΡΠΈ). ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ: Π ΡΡΡΠΎΠΊΠ΅ (1) ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°Π΅Ρ ΠΎΠ± Β«Unchecked assignmentΒ». Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ: Java ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ Π² ΡΡΡΠΎΠΊΠ΅ (1). ΠΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ. ΠΠΎ Π΅ΡΠ»ΠΈ ΠΌΡ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ add Π² ΡΡΡΠΎΠΊΠ΅ (2), ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Unchecked call β ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°Π΅Ρ Π½Π°Ρ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠ΅. Π ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΌΡ ΠΆΠ΅ ΠΏΡΡΠ°Π΅ΠΌΡΡ Π² ΡΠΏΠΈΡΠΎΠΊ ΡΡΡΠΎΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ. ReflectionΠ₯ΠΎΡΡ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΈΠΏΡ ΠΏΠΎΠ΄Π²Π΅ΡΠ³Π°ΡΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅ ΡΡΠΈΡΠ°Π½ΠΈΡ (type erasure), ΠΊΠΎΠ΅-ΠΊΠ°ΠΊΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Reflection. Π‘ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Generics ΠΊΠ»Π°ΡΡ java.lang.Class ΡΡΠ°Π» ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΌ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²ΠΎΡ ΡΡΠΎΡ ΠΊΠΎΠ΄: ΠΡΠ²ΠΎΠ΄ΠΡΠ»ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΠΏΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Π° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Reifiable. Π Reifiable ΡΠΈΠΏΠ°ΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ: ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ, Π½Π΅ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΈΠΏΡ, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΈΠΏΡ Ρ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, Raw ΡΠΈΠΏΡ ΠΈ ΠΌΠ°ΡΡΠΈΠ²Ρ, ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΠΎΡΡΡ ΡΠ²Π»ΡΡΡΡΡ reifiable. ΠΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Unchecked Warnings ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Β«Π·Π°Π³ΡΡΠ·Π½Π΅Π½ΠΈΡ ΠΊΡΡΠΈΒ» ΠΈ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Reflection Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΠΏΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π½Π΅ Reifiable. ΠΠΎ Reflection ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΈΠΏΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΎ ΡΠΈΠΏΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈ ΠΎ ΡΠΈΠΏΠ΅ ΠΏΠΎΠ»Π΅ΠΉ ΠΊΠ»Π°ΡΡΠ°. Type InferenceΠ’Π΅ΡΠΌΠΈΠ½ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ ΠΊΠ°ΠΊ Β«ΠΡΠ²ΠΎΠ΄ ΡΠΈΠΏΠ°Β». ΠΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ (Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ) ΡΠΈΠΏ ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°: Π‘ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°ΠΉΠΌΠΎΠ½Π΄-ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Π² Java 7 ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΈΠΏ Ρ ArrayList : ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Ρ Π½Π°Ρ Π΅ΡΡΡ Π²ΠΎΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠ²ΡΠ·Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ: Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° List.nil() ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ²Π΅Π΄Π΅Π½ ΠΈΠ· ΠΏΡΠ°Π²ΠΎΠΉ ΡΠ°ΡΡΠΈ: ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π²ΡΠ±ΠΎΡΠ° ΡΠΈΠΏΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΠΈΠΏΠ° Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° List.nil() Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ String β ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² JDK 7, Π²ΡΠ΅ Ρ ΠΎΡΠΎΡΠΎ. ΠΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°Π·ΡΠΌΠ½ΠΎ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΈΠΏ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: Π JDK 7 ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π±Ρ compile-time error. Π Π² JDK 8 ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ. ΠΡΠΎ ΠΈ Π΅ΡΡΡ ΠΏΠ΅ΡΠ²Π°Ρ ΡΠ°ΡΡΡ JEP-101, Π΅Π³ΠΎ ΠΏΠ΅ΡΠ²Π°Ρ ΡΠ΅Π»Ρ β Π²ΡΠ²ΠΎΠ΄ ΡΠΈΠΏΠ° Π² ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ ΡΡΠΎ Π² Π²Π΅ΡΡΠΈΡΡ Π΄ΠΎ JDK 8 β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²Π½ΡΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΠΈΠΏΠ° ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°: ΠΡΠΎΡΠ°Ρ ΡΠ°ΡΡΡ JEP-101 Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ Π±Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΠΈΠΏ Π² ΡΠ΅ΠΏΠΎΡΠΊΠ΅ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: ΠΠΎ Π΄Π°Π½Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° Π½Π΅ ΡΠ΅ΡΠ΅Π½Π° Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ, ΠΈ Π²ΡΡΠ΄ Π»ΠΈ Π² Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΠ°ΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² Π±ΡΠ΄ΡΡΠΈΡ Π²Π΅ΡΡΠΈΡΡ JDK Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΡΡΠΎΠΌ ΠΈΡΡΠ΅Π·Π½Π΅Ρ, Π½ΠΎ ΠΏΠΎΠΊΠ° Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π²ΡΡΡΠ½ΡΡ: ΠΠΎΡΠ»Π΅ Π²ΡΡ ΠΎΠ΄Π° JEP 101 Π½Π° StackOverflow ΠΏΠΎΡΠ²ΠΈΠ»ΠΎΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΠΎΠΏΡΠΎΡΠΎΠ² ΠΏΠΎ ΡΠ΅ΠΌΠ΅. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΡΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΡΡ Π½Π° 7-ΠΉ Π²Π΅ΡΡΠΈΠΈ, Π½Π° 8-ΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΈΠ½Π°ΡΠ΅ β ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ? ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°: ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π½Π° JDK1.8: Π ΡΠ΅ΠΏΠ΅ΡΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π½Π° JDK1.7 β ΡΠΎ Π΅ΡΡΡ Π½Π° Java 7: Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Oracle Π²ΡΠΏΡΡΡΠΈΠ» ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ Ρ JDK1.7 Π½Π° JDK 1.8 Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠΏΠΈΡΠ°Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ Π½Π° Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ Java, ΠΈ ΡΠΎ, ΠΊΠ°ΠΊ ΡΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Π² ΠΊΠΎΠ΄Π΅ Π²ΡΡΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π½Π° Java 8 Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π½Π° Java 7, ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° Π²ΡΡΡΠ½ΡΡ: ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΠ° ΡΡΠΎΠΌ ΠΌΠΎΠΉ ΡΠ°ΡΡΠΊΠ°Π· ΠΎ Java Generics ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΊ ΠΊΠΎΠ½ΡΡ. ΠΠΎΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ Π² ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠΈ ΡΠ΅ΠΌΡ:
|