ΠΡΠΌΠ±Π΄Π° Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎ ΡΡΠΎ
ΠΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² C++
Π C++ 11 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΡ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΡΠ°ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ΅ Π»ΡΠΌΠ±Π΄Π°β β ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ( Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ) Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π³Π΄Π΅ ΠΎΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ±ΡΡΠ½ΠΎ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°ΠΌ ΠΈΠ»ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΈΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ½ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΈΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ.
Π‘Π²ΡΠ·Π°Π½Π½ΡΠ΅ ΡΡΠ°ΡΡΠΈ
Π§Π°ΡΡΠΈ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
Π ΡΡΠ°Π½Π΄Π°ΡΡΠ΅ ISO C++ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΠΎΠ΅ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ std::sort() Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°:
ΠΠ° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠΈΡΡΠ½ΠΊΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° ΡΡΡΡΠΊΡΡΡΠ° Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ:
ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Capture (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠ΅ ΠΊΠ°ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ C++).
ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ . (Π’Π°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π»ΡΠΌΠ±Π΄Π°-ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ)
ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠ°Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ .
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Exception ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ .
Π·Π°ΠΌΡΠΊΠ°ΡΡΠΈΠΉ-Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΡΠΈΠΏ ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ .
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Capture
ΠΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² ΡΠ΅ΠΊΡΡΠ΅ (Π² C++ 14), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΈΠ· ΠΎΠΊΡΡΠΆΠ°ΡΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΠΈΡ . ΠΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ Capture. ΠΠ½ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΊΡΠΈΡΡΡΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ Π·Π°ΠΏΠΈΡΡ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅. ΠΠΎΡΡΡΠΏ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ Ρ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠΌ Π°ΠΌΠΏΠ΅ΡΡΠ°Π½Π΄Π° ( & ) ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ ΠΈ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ Π½Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΡΡΡΠΎΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ( [ ] ) ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΠ΅Π»ΠΎ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΆΠΈΠΌ Π·Π°Ρ Π²Π°ΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌΡΠ΅ Π² ΡΠ΅Π»Π΅ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ: ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ [&] Π²ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΡΡΡΠ»Π°Π΅ΡΠ΅ΡΡ, Π·Π°Ρ Π²Π°ΡΡΠ²Π°ΡΡΡΡ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅, Π° [=] Π·Π½Π°ΡΠΈΡ, ΠΎΠ½ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠΎΠΆΠ½ΠΎ ΡΠ½Π°ΡΠ°Π»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΆΠΈΠΌ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ΅ΠΆΠΈΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΡΠ΅Π»ΠΎ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ total ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅, Π° ΠΊ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ factor ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Ρ:
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΈΠΊΡΠΈΡΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡΡΡ Π² ΡΠ΅Π»Π΅ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΠ°Ρ Π²Π°Ρ, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΠΎΡΠΈΠ΅, β ΡΡΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Π° Variadic :
Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΡΠ΅Π»Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ»Π΅Π½Π° ΠΊΠ»Π°ΡΡΠ°, ΠΏΠ΅ΡΠ΅Π΄Π°ΠΉΡΠ΅ this ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π² ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Capture, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΠΈ ΡΠ»Π΅Π½Π°ΠΌ Π΄Π°Π½Π½ΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
Visual Studio 2017 Π²Π΅ΡΡΠΈΠΈ 15,3 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΉ (Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΡ ): this ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΠΈΡΠ°Π½ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΡΠ΅ΠΌ ΡΠΊΠ°Π·Π°Π½ΠΈΡ *this Π² ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ capture. ΠΠ°Ρ Π²Π°Ρ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ Π²Π΅ΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ·Π΅Π» Π²ΡΠ·ΠΎΠ²Π°, Π³Π΄Π΅ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. (ΠΠ°ΠΌΡΠΊΠ°Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΡΡΠΈΠΉ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.) ΠΠ°Ρ Π²Π°Ρ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π»ΡΠΌΠ±Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ ΠΈΠ»ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ . ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°Ρ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ NUMA.
ΠΡΠΈΠΌΠ΅Ρ, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΡΠ»Π΅Π½ΠΎΠ² ΠΊΠ»Π°ΡΡΠ°, ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ «ΠΏΡΠΈΠΌΠ΅Ρ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅» Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ Capture ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡΡ:
ΠΠ°Ρ Π²Π°ΡΡ ΡΡΡΠ»ΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²Π½Π΅, Π½ΠΎ Π·Π°Ρ Π²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π½Π΅ ΠΌΠΎΠ³ΡΡ. ( mutable ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΠΏΠΈΠΈ, Π½ΠΎ Π½Π΅ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Ρ.)
ΠΠ°Ρ Π²Π°Ρ ΡΡΡΠ»ΠΎΠΊ ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π²Π½Π΅, Π½ΠΎ Π½Π΅ ΡΠΈΠΊΡΠΈΡΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
Π€ΠΈΠΊΡΠ°ΡΠΈΡ ΡΡΡΠ»ΠΊΠΈ Π²Π²ΠΎΠ΄ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΡΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π²Ρ Π·Π°Ρ Π²Π°ΡΡΠ²Π°Π΅ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π² Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΌ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ, ΡΡΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»Π΅Π³ΠΊΠΎ ΠΏΡΠΎΠΏΠ°Π»Π° Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
ΠΠ±ΠΎΠ±ΡΠ΅Π½Π½Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ (C++14)
Π C++14 Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»ΠΈ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π’ΠΈΠΏ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠΈΠΏΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, std::unique_ptr ) ΠΈΠ· ΠΎΠΊΡΡΠΆΠ°ΡΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ Π² Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ.
Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²
ΠΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ. Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² (Π»ΡΠΌΠ±Π΄Π°-Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΎΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅) ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΈ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ Π°ΡΠΏΠ΅ΠΊΡΠΎΠ² Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ.
Π C++ 14, Π΅ΡΠ»ΠΈ ΡΠΈΠΏ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΡΠΈΠΏΠ°. ΠΡΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°Π±Π»ΠΎΠ½Π°. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ auto Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ΅Π½ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΈΠΏΠ°.
ΠΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π΄ΡΡΠ³ΠΎΠ΅ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ²ΠΎΠ΅Π³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ°Β» Π² ΡΡΠ°ΡΡΠ΅ ΠΡΠΈΠΌΠ΅ΡΡ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
ΠΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠ°Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ (throw).
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠΉ ΡΠΈΠΏ
ΠΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π΄ΡΡΠ³ΠΎΠ΅ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ²ΠΎΠ΅Π³ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ «Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ°» Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
Π’Π΅Π»ΠΎ Π»ΡΠΌΠ±Π΄Ρ
Π’Π΅Π»ΠΎ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΡΠ°Π²Π½ΡΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ. ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π²ΡΠ΅, ΡΡΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ Π² ΡΠ΅Π»Π΅ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ-ΡΠ»Π΅Π½Π°. Π’Π΅Π»ΠΎ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΈΠΏΠ°ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ :
Π€ΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΠ· Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ (ΡΠΌ. Π²ΡΡΠ΅).
ΠΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅.
Π§Π»Π΅Π½Ρ Π΄Π°Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠ°, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ Π²Π½ΡΡΡΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΈ this Π·Π°Ρ Π²Π°ΡΠ΅Π½Π½ΡΠ΅.
ΠΡΠ±Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΠΈΠΌΠ΅ΡΡΠ°Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ²Π½ΠΎ ΡΠΈΠΊΡΠΈΡΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ n ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ Π½Π΅ΡΠ²Π½ΠΎ ΡΠΈΠΊΡΠΈΡΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ m ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Generate.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ generate_n.
constexpr Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
Visual Studio 2017 Π²Π΅ΡΡΠΈΠΈ 15,3 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΉ (Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΡ ): Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΊΠ°ΠΊ constexpr (ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΠΎΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ), Π΅ΡΠ»ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π°Ρ Π²Π°ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π΄Π°Π½Π½ΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π° Π² ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΠΎΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ.
ΠΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠ²Π½ΠΎ, constexpr Π΅ΡΠ»ΠΈ Π΅Π³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ constexpr ΡΡΠ½ΠΊΡΠΈΠΈ:
Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌ ΠΠ°ΠΉΠΊΡΠΎΡΠΎΡΡ
Visual Studio ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π»ΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΡ c++ 11 ΠΈ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π±Π΅Π· ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. ΠΡΠΌΠ±Π΄Π° Π±Π΅Π· ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π² ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π²ΡΠ·ΠΎΠ²Π°Ρ .
ΠΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ (Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ ΠΏΠΎ C#)
ΠΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ => Π΄Π»Ρ ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ· Π΄Π²ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠΎΡΠΌ:
ΠΡΠΌΠ±Π΄Π° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΈΠΌΠ΅ΡΡΠ°Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅ΠΊΡΡΠ°:
ΠΡΠΌΠ±Π΄Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°, ΠΈΠΌΠ΅ΡΡΠ°Ρ Π±Π»ΠΎΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅ΠΊΡΡΠ°:
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ (Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π΅ΡΡΡ) Ρ Π»Π΅Π²ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ Π»ΡΠΌΠ±Π΄Π°-ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΠΈ Π±Π»ΠΎΠΊ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ.
ΠΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π² ΡΠΈΠΏΡ Π΄Π΅ΡΠ΅Π²Π° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅:
ΠΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΠΊΠΎΠ΄Π΅, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΠ΅Π±ΡΡΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΡΠΈΠΏΠΎΠ² Π΄Π΅Π»Π΅Π³Π°ΡΠΎΠ² ΠΈΠ»ΠΈ Π΄Π΅ΡΠ΅Π²ΡΠ΅Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΌΠ΅ΡΠΎΠ΄Π° Task.Run(Action) Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ LINQ Π² C#, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅:
ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-Π»ΡΠΌΠ±Π΄Ρ
ΠΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ρ ΠΏΡΠ°Π²ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° => Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π»ΡΠΌΠ±Π΄Π°. ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-Π»ΡΠΌΠ±Π΄Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΠΎΡΠΌΡ.
ΠΡΠΌΠ±Π΄Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ²
ΠΡΠΌΠ±Π΄Π°-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² ΡΠΈΠ³ΡΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ:
Π’Π΅Π»ΠΎ Π»ΡΠΌΠ±Π΄Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· Π»ΡΠ±ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ²; ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Π΄Π²ΡΡ -ΡΡΠ΅Ρ .
ΠΡΠΌΠ±Π΄Π°-ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄Π΅ΡΠ΅Π²ΡΠ΅Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
ΠΡ ΠΎΠ΄Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
ΠΡ ΠΎΠ΄Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² ΠΊΡΡΠ³Π»ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ. ΠΡΠ»Π΅Π²ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²Ρ ΠΎΠ΄Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π·Π°Π΄Π°Π΅ΡΡΡ ΠΏΡΡΡΡΠΌΠΈ ΡΠΊΠΎΠ±ΠΊΠ°ΠΌΠΈ:
ΠΡΠ»ΠΈ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΊΡΡΠ³Π»ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½Ρ:
ΠΠ²Π° ΠΈ Π±ΠΎΠ»Π΅Π΅ Π²Ρ ΠΎΠ΄Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠ°Π·Π΄Π΅Π»ΡΡΡΡΡ Π·Π°ΠΏΡΡΡΠΌΠΈ:
ΠΠ½ΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΈΠΏΡ Π²Ρ ΠΎΠ΄Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠ²Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅:
ΠΠ»Ρ Π²Ρ ΠΎΠ΄Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π²ΡΠ΅ ΡΠΈΠΏΡ Π½ΡΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ Π»ΠΈΠ±ΠΎ Π² ΡΠ²Π½ΠΎΠΌ, Π»ΠΈΠ±ΠΎ Π² Π½Π΅ΡΠ²Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ CS0748.
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ C# 9.0, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΡΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ Π΄Π²Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π²Ρ ΠΎΠ΄Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ:
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΡΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ.
ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ² async ΠΈ await ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠ΅ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Windows Forms ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ExampleMethodAsync ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ Π΅Π³ΠΎ.
Π’Π°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠΎΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ, ΠΏΠΎΡΡΠ°Π²ΡΡΠ΅ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ async ΠΏΠ΅ΡΠ΅Π΄ ΡΠΏΠΈΡΠΊΠΎΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅:
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ² Async ΠΈ Await.
ΠΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΊΠΎΡΡΠ΅ΠΆΠΈ
Π C# 7.0 ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ. ΠΠΎΡΡΠ΅ΠΆ ΠΌΠΎΠΆΠ½ΠΎ Π²Π²Π΅ΡΡΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΈ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΊΠΎΡΡΠ΅ΠΆ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ C# ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΊΠΎΡΡΠ΅ΠΆΠ°.
ΠΠΎΡΡΠ΅ΠΆ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΡΠΊΠΎΠ±ΠΊΠΈ ΡΠΏΠΈΡΠΊΠ° Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Ρ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»ΡΠΌΠΈ-Π·Π°ΠΏΡΡΡΠΌΠΈ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΊΠΎΡΡΠ΅ΠΆ Ρ ΡΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΈΡΠ΅Π» Π² Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΠ½ΠΎ ΡΠ΄Π²Π°ΠΈΠ²Π°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΡΡΠ΅ΠΆ Ρ ΡΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΠΊΠΎΡΡΠ΅ΠΆΠ°Ρ Π² C# ΡΠΌ. Π² ΡΡΠ°ΡΡΠ΅ Π’ΠΈΠΏΡ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ.
ΠΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ²
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π·Π°ΠΏΡΠΎΡΠ° Count:
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΈΠΏ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π²Π²ΠΎΠ΄Π°; Π½ΠΎ Π΅Π³ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΠ°Π½Π½ΠΎΠ΅ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΡΠ΅Π»ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ( n ), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π½Π° Π΄Π²Π° Π΄Π°ΡΡ ΠΎΡΡΠ°ΡΠΎΠΊ 1.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Ρ ΠΎΠ΄Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΡΡΠ΅ΠΌ ΠΈΡ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΡΠΊΠΎΠ±ΠΊΠΈ. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ numbers Π΄ΠΎ ΡΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ Π΅Π³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅ΡΠ° Π² ΠΌΠ°ΡΡΠΈΠ²Π΅:
ΠΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², Π½ΠΎ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π²ΡΠ·ΠΎΠ²Π°Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅:
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° Π² Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ
ΠΠ±ΡΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΠΏΠ° Π΄Π»Ρ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΡΠΎΡΠΌΡΠ»ΠΈΡΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΈΠΏ Π΄Π»Ρ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
Π£ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π½Π΅Ρ ΡΠΈΠΏΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎΠ±ΡΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ½ΡΡΠΈΠ΅, ΠΊΠ°ΠΊ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ ΠΈΠ½ΠΎΠ³Π΄Π° Π±ΡΠ²Π°Π΅Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΎΠΏΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ½ΡΡΠΈΠ΅ΠΌ ΡΠΈΠΏΠ°. ΠΠΎΠ΄ Π½Π΅ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠΌ «ΡΠΈΠΏ» ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΠΈΠΏ Π΄Π΅Π»Π΅Π³Π°ΡΠ° ΠΈΠ»ΠΈ ΡΠΈΠΏ Expression, Π² ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ C# 10 Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΈΠΏ. ΠΠ°ΠΌ Π½Π΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ ΡΠΈΠΏ Π΄Π΅Π»Π΅Π³Π°ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Func ΠΈΠ»ΠΈ Action Π΄Π»Ρ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ²Π΅ΡΡΠΈ ΡΠΈΠΏ Π΄Π΅Π»Π΅Π³Π°ΡΠ° ΠΈΠ· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈ ΡΠΈΠΏΠ° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅:
ΠΡΡΠΏΠΏΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² (ΡΠΎ Π΅ΡΡΡ ΠΈΠΌΠ΅Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π±Π΅Π· ΡΠΏΠΈΡΠΊΠΎΠ² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ²) Ρ ΡΠΎΠ²Π½ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΎΠΉ ΠΈΠΌΠ΅ΡΡ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΈΠΏ:
Π£ ΠΌΠ½ΠΎΠ³ΠΈΡ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π½Π΅Ρ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅:
ΠΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠΉ ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠΌ ΠΈ Π»Π΅Π³ΠΊΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ. ΠΠ»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΡΡΠΎ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ:
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ C# 10 ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ. ΠΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ ΡΠ²Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΠΊΠ»ΡΡΠ΅Π½Ρ Π² ΠΊΡΡΠ³Π»ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΡΡΠ°ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²:
ΠΡΡΠΈΠ±ΡΡΡ
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ C# 10 ΠΊ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π°ΡΡΠΈΠ±ΡΡΡ. ΠΡΡΠΈΠ±ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°. ΠΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ Π² ΠΊΡΡΠ³Π»ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ:
ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π»ΡΠ±ΠΎΠΉ Π°ΡΡΠΈΠ±ΡΡ, Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ Π΄Π»Ρ AttributeTargets.Method.
ΠΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠΈΠΏ Π΄Π΅Π»Π΅Π³Π°ΡΠ°. ΠΡΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ΅ΡΠΎΠ΄ Π΄Π΅Π»Π΅Π³Π°ΡΠ° Invoke Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π°ΡΡΠΈΠ±ΡΡΡ Π² Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ. ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΡ Π½Π΅ ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π²Π»ΠΈΡΠ½ΠΈΡ. ΠΡΡΠΈΠ±ΡΡΡ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΉ ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ System.Diagnostics.ConditionalAttribute Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΊ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΠ°ΠΏΠΈΡΡ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ
ΠΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅. ΠΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠ»ΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΈΠΏΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ , Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π±Ρ Π² ΠΈΠ½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½ΠΈ ΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡ Π·Π° Π³ΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠΈΠ»ΠΈΡΡ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΡΡΠΎΡΠ°. ΠΠ½Π΅ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Π°, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΠ½Π° ΡΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ . Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΡΡ ΡΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ ΠΊ ΠΎΠ±Π»Π°ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ .
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ C# 9.0, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ static ΠΊ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ Π½Π΅ΠΏΡΠ΅Π΄Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΠ»ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ:
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΠ»ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΈΠ· ΠΎΡ Π²Π°ΡΡΠ²Π°ΡΡΠΈΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ.
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠ·ΡΠΊΠ° C#
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΡΠ½ΠΊΡΠΈΡΡ , Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΡ Π² C# 9.0, ΡΠΌ. Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π·Π°ΠΌΠ΅ΡΠΊΠ°Ρ ΠΎ ΡΡΠ½ΠΊΡΠΈΡΡ :
ΠΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² Java 8
Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Java 8 Π½Π°ΠΊΠΎΠ½Π΅Ρ-ΡΠΎ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ Π΄ΠΎΠ»Π³ΠΎΠΆΠ΄Π°Π½Π½ΡΠ΅ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ ΡΠ°ΠΌΠ°Ρ Π²Π°ΠΆΠ½Π°Ρ Π½ΠΎΠ²Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ; ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΈΡΠ°ΡΡ Π±ΡΡΡΡΠ΅Π΅ ΠΈ Π΄Π΅Π»Π°ΡΡ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ½ΡΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΊΡΡΠ²Π°ΡΡ Π΄Π²Π΅ΡΡ Π² ΠΌΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
Java Π·Π°Π΄ΡΠΌΡΠ²Π°Π»Π°ΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ Π² 90-Π΅ Π³ΠΎΠ΄Ρ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠΎΠΉ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ°Π΄ΠΎΠ»Π³ΠΎ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ Π±ΡΠ»ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π±ΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ Lisp ΠΈ Scheme, Π½ΠΎ ΠΈΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Π½Π΅ Π±ΡΠ»ΠΈ ΠΎΡΠ΅Π½Π΅Π½Ρ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ Π°ΠΊΠ°Π΄Π΅ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΠ΅Π΄Ρ. Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠ»ΡΠ½ΠΎ Π²ΡΡΠΎΡΠ»ΠΎ Π² Π·Π½Π°ΡΠΈΠΌΠΎΡΡΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΡΠΎΠ±ΡΡΠΈΡΡ (Β«reactiveΒ»). ΠΡΠΎ Π½Π΅ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ½Π°Ρ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ β ΠΏΠ»ΠΎΡ ΠΎ. ΠΠ°ΠΎΠ±ΠΎΡΠΎΡ, Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ, Π²ΡΠΈΠ³ΡΡΡΠ½Π°Ρ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ β ΡΠΌΠ΅ΡΠΈΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅. ΠΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ», Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Π° ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠΎΡΠ½ΠΎΠ΅ API, Π΅ΡΠ»ΠΈ ΡΠ·ΡΠΊ ΠΈΠΌΠ΅Π΅Ρ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
ΠΠ»Π°Π²Π½ΡΠΌ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π² Java 8 ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΊ Π΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΎΡΠ½ΠΎΠ²Π΅. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π²Π°ΠΆΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°Ρ . ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ ΠΏΠΎΠ½ΡΡΠΈΡ Π»ΡΠΌΠ±Π΄Ρ:
ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Ρ Π»ΡΠΌΠ±Π΄Ρ?
ΠΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π² Π΄ΡΡΠ³ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ ΠΏΠΎΠ·ΠΆΠ΅, ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·. ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΠ³Π»ΡΠ±Π»ΡΡΡΡΡ Π² ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ (ΠΈ Π»ΡΠ±ΠΎΠΏΡΡΠ½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅), Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΠ°Π³ Π½Π°Π·Π°Π΄ ΠΈ ΡΠ²ΠΈΠ΄ΠΈΠΌ, Π³Π΄Π΅ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π° Π² Java Π΄ΠΎ ΡΡΠΎΠ³ΠΎ.
ΠΠ»ΡΡΠ΅Π²ΡΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ run ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡΠ°. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΠΈ ΠΏΠΎ Π΄Π»ΠΈΠ½Π΅, Π° Π½Π΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Comparator Π² ΠΌΠ΅ΡΠΎΠ΄ sort :
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠΎΠ»Π»Π±ΡΠΊ Π΄Π»Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠΡ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° Π² ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠ»Π°ΡΡΠ°, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠ»ΡΡΠ°ΡΠ΅Π»Ρ, ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ, ΠΈ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ. ΠΡΠΎ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, ΡΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Β«Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°Β»:
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Java 8 ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΡΠ΅Ρ JavaFX Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠ΅Π΅ΠΌΠ½ΠΈΠΊΠ° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Swing GUI, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ JavaFX Π² ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ . ΠΠ΅ΡΠ°Π»ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. Π ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π±ΡΠ΄Ρ ΡΠΎ Swing, JavaFX ΠΈΠ»ΠΈ Android, Π²Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π°ΠΆΠ°ΡΠ°.
ΠΠΎ Π²ΡΠ΅Ρ ΡΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Π²Ρ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄. ΠΠ»ΠΎΠΊ ΠΊΠΎΠ΄Π° ΠΊΠΎΠΌΡ-ΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π»ΡΡ β ΠΏΡΠ»Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΈΠ»ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ΅. ΠΡΠΎΡ ΠΊΠΎΠ΄ Π²ΡΠ·ΡΠ²Π°Π»ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠΏΡΡΡΡ.
ΠΠΎ ΡΠΈΡ
ΠΏΠΎΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΊΠΎΠ΄Π° Π½Π΅ Π±ΡΠ»Π° ΠΏΡΠΎΡΡΠΎΠΉ Π² Java. ΠΡ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΊΡΠ΄Π° ΡΠ³ΠΎΠ΄Π½ΠΎ. Java ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ, ΡΠ°ΠΊ ΡΡΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ»ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠΉ ΠΊ ΠΊΠ»Π°ΡΡΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ Ρ Π½ΡΠΆΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
Π Π΄ΡΡΠ³ΠΈΡ
ΡΠ·ΡΠΊΠ°Ρ
ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΠΊΠΎΠ΄Π° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ. ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ Java ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»ΡΠ»ΠΈΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠΈΠ»Π° Java Π² Π΅Π΅ ΠΏΡΠΎΡΡΠΎΡΠ΅ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. Π―Π·ΡΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ ΠΊΡΠ°ΠΉΠ½Π΅ Π±Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ½ΡΠΌ, Π΅ΡΠ»ΠΈ Π±ΡΠ΄Π΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π°ΡΡ ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΡΠ°ΡΠΊΠΈΠΉ ΠΊΠΎΠ΄. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π² ΡΠ΅Ρ
Π΄ΡΡΠ³ΠΈΡ
ΡΠ·ΡΠΊΠ°Ρ
, ΡΡΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ Π»Π΅Π³ΡΠ΅ ΠΏΠΎΡΠΎΠΆΠ΄Π°ΡΡ ΠΏΠΎΡΠΎΠΊ ΠΈΠ»ΠΈ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΡΠ΅Π»ΡΠΊΠ°; ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΡ
API ΠΏΡΠΎΡΠ΅, Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½Ρ ΠΈ ΠΌΠΎΡΠ½ΡΠ΅. Π Java, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΡ
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, Π½ΠΎ ΡΠ°ΠΊΠΈΠ΅ API Π±ΡΠ»ΠΎ Π±Ρ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Π²ΠΎΠΏΡΠΎΡ Π±ΡΠ» Π½Π΅ Π² ΡΠΎΠΌ, ΡΠ°ΡΡΠΈΡΡΡΡ Java Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π½Π΅Ρ, Π° ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ. ΠΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ², ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π²ΡΡΡΠ½ΠΈΠ»ΠΎΡΡ, ΡΡΠΎ ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Java. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΠΊΠΎΠ΄Π° Π² Java 8.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π΅ΡΠ΅ ΡΠ°Π·. ΠΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΠΊΠ°ΠΊΠ°Ρ ΡΡΡΠΎΠΊΠ° ΠΊΠΎΡΠΎΡΠ΅. ΠΡ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌ
ΠΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²ΠΈΠ΄Π΅Π»ΠΈ Π²Π°ΡΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ΅ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅! Π’Π°ΠΊΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ Π±Π»ΠΎΠΊΠΎΠΌ ΠΊΠΎΠ΄Π° Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ Π»ΡΠ±ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Ρ Π² ΠΊΠΎΠ΄.
ΠΠΎΡΠ΅ΠΌΡ ΡΠ°ΠΊΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅? ΠΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ Π½Π°Π·Π°Π΄, ΠΊΠΎΠ³Π΄Π° Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ»ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ², Π»ΠΎΠ³ΠΈΠΊ ΠΠ»ΠΎΠ½Π·ΠΎ Π§ΡΡΡ Ρ ΠΎΡΠ΅Π» ΡΠΎΡΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ, ΡΡΠΎ Π·Π½Π°ΡΠΈΡ Π΄Π»Ρ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΡΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π²ΡΡΠΈΡΠ»ΡΠ΅ΠΌΠΎΠΉ. (ΠΡΠ±ΠΎΠΏΡΡΠ½ΠΎ, ΡΡΠΎ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅, ΠΊΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ, Π½ΠΎ Π½ΠΈΠΊΡΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ, ΠΊΠ°ΠΊ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.) ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Π³ΡΠ΅ΡΠ΅ΡΠΊΡΡ Π±ΡΠΊΠ²Ρ Π»ΡΠΌΠ±Π΄Π° (Ξ»), ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ. ΠΡΠ»ΠΈ Π±Ρ ΠΎΠ½ Π·Π½Π°Π» ΠΎ Java API, ΠΎΠ½ Π½Π°ΠΏΠΈΡΠ°Π» Π±Ρ ΡΡΠΎ-ΡΠΎ Π½Π΅ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅Π΅ Π½Π° ΡΠΎ, ΡΡΠΎ Π²Ρ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ.
ΠΠΎΡΠ΅ΠΌΡ Π±ΡΠΊΠ²Π° Ξ»? Π Π°Π·Π²Π΅ Π§ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Π²ΡΠ΅ Π±ΡΠΊΠ²Ρ Π°Π»ΡΠ°Π²ΠΈΡΠ°? ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΏΠΎΡΡΠ΅Π½Π½ΡΠΉ ΡΡΡΠ΄ Principia Mathematica ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ» Λ Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π΄ΠΎΡ Π½ΠΎΠ²ΠΈΠ»ΠΈ Π§ΡΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π°Π³Π»Π°Π²Π½ΡΡ Π»ΡΠΌΠ±Π΄Π° (Ξ) Π΄Π»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠΎ, Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ², ΠΎΠ½ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΠ»ΡΡ Π½Π° ΡΡΡΠΎΡΠ½ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π±ΡΠΊΠ²Ρ. Π‘ ΡΠ΅Ρ ΠΏΠΎΡ, Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ Π±ΡΠ»ΠΎ Π½Π°Π·Π²Π°Π½ΠΎ Β«Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅Β».
ΠΡΠ»ΠΈ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π²Ρ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΡΡΠ°Π²ΠΈΡΠ΅ ΠΏΡΡΡΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ, ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²:
ΠΡΠ»ΠΈ ΡΠΈΠΏΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ²Π΅ΡΡΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΡΡΠΈΡΡ ΠΈΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,
ΠΠ΄Π΅ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΡΠ²ΠΎΠ΄, ΡΡΠΎ firstStr ΠΈ secondStr Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠ°ΡΠ°ΡΠΎΡΡ ΡΡΡΠΎΠΊ. (ΠΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΡΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½Π΅Π΅ ΠΏΠΎΠ·ΠΆΠ΅.)
ΠΡΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π°ΠΆΠ΅ ΠΎΠΏΡΡΡΠΈΡΡ ΡΠΊΠΎΠ±ΠΊΠΈ:
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ final ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ Π»ΡΠΌΠ±Π΄Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π°:
ΠΡ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΠ΅ ΡΠΈΠΏ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎ Π²ΡΠ΅Π³Π΄Π° Π²ΡΡΡΠ½ΡΠ΅ΡΡΡ ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Ρ ΠΎΠ΄Π½ΠΈΠΌ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ. Π’Π°ΠΊΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ.
ΠΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ β ΡΡΠΎ ΡΠΎ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΡΠ½ΡΠΌΠΈ. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ. ΠΠΎΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΡΠΎΡ ΠΊΠΎΠ΄ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ ΡΠΈΡΠ°ΡΡ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π·Π°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ checked ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΏΡΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΈ Π»ΡΠΌΠ±Π΄Ρ Π² ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΡΠ»ΠΈ ΡΠ΅Π»ΠΎ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΠΎΡΠΈΡΡ checked ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΎ Π² Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅ ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π±ΡΠ»ΠΎ Π±Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ:
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Runnable.run Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΠΎΡΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌ. Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ, Ρ Π²Π°Ρ Π΅ΡΡΡ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ°. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΉΠΌΠ°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅Π»Π΅ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π»ΡΠΌΠ±Π΄Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΠΎΠ΄ΠΈΠ½ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΠΎΡΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠ΅ΡΠΎΠ΄ call ΠΈΠ· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Callable ΠΌΠΎΠΆΠ΅Ρ Π±ΡΠΎΡΠΈΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π»ΡΠΌΠ±Π΄Ρ Callable (Π΅ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ return null ).
Π‘ΡΡΠ»ΠΊΠΈ Π½Π° ΠΌΠ΅ΡΠΎΠ΄Ρ
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠ΅Π³ΠΈΡΡΡΠ° Π±ΡΠΊΠ². ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄:
ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ ΠΈΠ· ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ :: ΠΎΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΈΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡΠ°. ΠΡΡΡ ΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠ°:
Π‘ΡΡΠ»ΠΊΠΈ Π½Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ
ΠΠΎ ΡΡΠΎ Π½Π΅ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ ΠΎΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΊΠ½ΠΎΠΏΠΎΠΊ, Π° Π½Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΡΠΎΠΊΠΎΠ² ΡΠ΅ΡΠ°Π΅Ρ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π·Π° ΡΡΠ΅Ρ ΡΡΡΠ»ΠΎΠΊ Π½Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ. ΠΠ΅ΡΠ΅Π΄Π°ΠΉΡΠ΅ Button[]::new ΠΌΠ΅ΡΠΎΠ΄Ρ toArray :
ΠΠ΅ΡΠΎΠ΄ toArray Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠΎΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΠ°ΡΠ΅ΠΌ ΠΎΠ½ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ².
ΠΠ±Π»Π°ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ
Π§Π°ΡΡΠΎ Π²Ρ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΠΈΠ· ΠΎΡ Π²Π°ΡΡΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡΠ° Π² Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΡΠ»ΠΈ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ Ρ ΠΎΡΠΎΡΠ΅Π½ΡΠΊΠΎ, ΡΠΎ Π½Π΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π·Π΄Π΅ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ. ΠΠΎΠ΄ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΠΎΠ·ΠΆΠ΅ Π²ΡΠ·ΠΎΠ²Π° repeatText ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠΆΠ΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΡΠ΅ΡΡΠ½Ρ. ΠΠ°ΠΊ ΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ text ΠΈ count ΠΎΡΡΠ°ΡΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ?
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΠΎΡΠ½ΠΈΡΡ Π½Π°ΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ . ΠΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°:
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠΌ Π΄Π»Ρ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π° Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΠ΅. ΠΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ Π·Π»ΠΎΡΠ°Π΄ΡΡΠ²ΡΠ΅Ρ, ΡΡΠΎ ΠΈΡ ΡΠ·ΡΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ, Π±ΡΠ΄ΡΡΠ΅ ΡΠ²Π΅ΡΠ΅Π½Ρ, ΡΡΠΎ Java ΡΠ°ΠΊΠΆΠ΅ ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ. Π Java Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΡΡΡΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡΠΌΠΈ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ Π±ΡΠ»ΠΈ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡΠΌΠΈ Π²ΡΠ΅ ΡΡΠΎ Π²ΡΠ΅ΠΌΡ. Java 8 ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°ΠΌ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ Ρ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ.
ΠΠ°ΠΊ Π²Ρ Π²ΠΈΠ΄Π΅Π»ΠΈ, Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Ρ Π²Π°ΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΎΡ Π²Π°ΡΡΠ²Π°ΡΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ. Π Java, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π·Π°Ρ Π²Π°ΡΠΈΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ, Π΅ΡΡΡ Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅. Π Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ»Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ ΠΌΠ΅Π½ΡΡΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ:
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΡΠΈΡΠΈΠ½Π° Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ. ΠΠ·ΠΌΠ΅Π½ΡΡΡΠΈΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΡ Π½Π΅ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½Ρ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ Π·Π°Π΄Π°Ρ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΠΎΠ±ΡΠΈΠΉ ΡΡΠ΅ΡΡΠΈΠΊ.
ΠΡΠ»ΠΈ Π±Ρ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π±ΡΠ» ΠΏΡΠ°Π²ΠΎΠΌΠ΅ΡΠ½ΡΠΌ, ΡΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ Ρ ΠΎΡΠΎΡΠΎ. ΠΡΠΈΡΠ°ΡΠ΅Π½ΠΈΠ΅ matchCount++ Π½Π΅Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎ, ΠΈ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° ΡΠ·Π½Π°ΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²ΡΠΏΠΎΠ»Π½ΡΡ ΡΡΠΎΡ ΠΊΠΎΠ΄ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
ΠΠ½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΌΠΎΠ³ΡΡ ΡΠ°ΠΊΠΆΠ΅ Π·Π°Ρ Π²Π°ΡΡΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΎΡ Π²Π°ΡΡΠ²Π°ΡΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ. ΠΠΎ Java 8 Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΌΠΎΠ³Π»ΠΈ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ final ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ. ΠΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΡΠ»Π°Π±Π»Π΅Π½ΠΎ Π΄Π»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ»Ρ Π΄Π»Ρ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠ½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π»ΡΠ±ΠΎΠΉ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ final Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ; ΡΠΎ Π΅ΡΡΡ, ΠΊ Π»ΡΠ±ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ.
ΠΠ΅ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°ΠΉΡΠ΅, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΡΠ²ΠΈΡ Π²ΡΠ΅ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ°. ΠΠ°ΠΏΡΠ΅Ρ Π½Π° ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΡΠ»ΠΈ matchCount β ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΈΠ»ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΈΠ· ΠΎΡ Π²Π°ΡΡΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΡΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ, Ρ ΠΎΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°ΠΊ ΠΆΠ΅ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π·Π°ΠΊΠΎΠ½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, Ρ ΠΎΡΡ ΡΡΠΎ ΠΈ Π½Π΅ ΠΎΡΠ΅Π½Ρ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ,
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° ΠΈ ΡΠ±ΠΎΡΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠΎΠΊΠΈ Π΄Π»Ρ ΡΠ±ΠΎΡΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ. Π Π΄ΡΡΠ³ΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ ΡΡΠ΅ΡΡΠΈΠΊΠΈ ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ.
ΠΠ°ΠΊ ΠΈ Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ, Π΅ΡΡΡ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΠ΅ΡΡΠΈΠΊ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΡ Π²Π°ΡΡΠ²Π°ΡΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΌΠ°ΡΡΠΈΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ 1, Π²ΡΠΎΠ΄Π΅ ΡΡΠΎΠ³ΠΎ:
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π½Π΅ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ. ΠΠ»Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ ΡΡΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π½ΠΎ Π² ΡΠ΅Π»ΠΎΠΌ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ Π΄Π²Π°ΠΆΠ΄Ρ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΡΡΡΠΊ.
Π’Π΅Π»ΠΎ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΡΡ ΠΆΠ΅ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΡΡΠΎ ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π±Π»ΠΎΠΊ. ΠΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ΅ ΠΆΠ΅ ΡΠ°ΠΌΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π΄Π»Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΠΈΠΌΠ΅Π½. ΠΠ΅Π»ΡΠ·Ρ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² Π»ΡΠΌΠ±Π΄Π΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΡΠΎ ΠΆΠ΅ ΠΈΠΌΡ, ΡΡΠΎ ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ.
ΠΠ½ΡΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π΄Π²Π΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΈ Π² Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° this Π² Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π²Ρ ΡΡΡΠ»Π°Π΅ΡΠ΅ΡΡ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ this ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ·Π΄Π°Π΅Ρ Π»ΡΠΌΠ±Π΄Ρ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄
ΠΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Ρ ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ. ΠΡΠΎ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΊΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΡΠΎΡΠ΅ ΠΈ ΠΏΡΠΎΡΠ΅ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ, ΡΠ΅ΠΌ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ ΡΠΈΠΊΠ»Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΈΠΊΠ»:
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ:
Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΠΊΠ»Π°ΡΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ ΠΎΠ±Π°?
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Naming ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ getFirstName :
ΠΡΠ»ΠΈ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°, ΡΠΎ ΠΌΡ Π½Π°Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π² ΠΏΡΠ΅-Java 8 ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΈ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°. Π£ ΠΊΠ»Π°ΡΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΅ΡΡΡ Π΄Π²Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ: ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΠ»ΠΈ ΠΎΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ Π½Π΅ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΌ. Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠ»Π°ΡΡ ΡΠ°ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΌ.
ΠΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΎΠ±ΡΡΠ΄ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ ΠΈΠΌΠ΅Π½ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌΠΈ. Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ»Π°ΡΡ, ΡΠ°ΡΡΠΈΡΡΡΡΠΈΠΉ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π½Π°ΡΠ»Π΅Π΄ΡΡ ΡΠΎΡ ΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΡ ΠΎΠ±ΠΎΠΈΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Person ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠΌ ΠΈ Student ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ: