Π’ экосистСмС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π±Π»ΠΎΠΊΠΎΠΌ любой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ Π½Π΅ просто Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π°, Π° строго структурированныС ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Π»ΠΎΠ³ΠΈΠΊΡƒ повСдСния систСмы, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ взаимодСйствиС с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. ПониманиС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ для любого Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, стрСмящСгося ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

ΠœΠ΅Ρ‚ΠΎΠ΄ прСдставляСт собой ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², которая выполняСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ дСйствиС ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ просто Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ всСгда Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π΄Π°ΠΆΠ΅ Ссли это пустоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° НСопрСдСлСно. ИмСнно ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° значСния ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΡ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π² синтаксисС встроСнного языка.

БоврСмСнная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ 1Π‘ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ‡Π΅Ρ‚ΠΊΠΎΠ³ΠΎ раздСлСния отвСтствСнности ΠΌΠ΅ΠΆΠ΄Ρƒ клиСнтской ΠΈ сСрвСрной частями. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Π² Ρ€ΠΎΠ»ΠΈ моста ΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ исполнитСля Π² этой Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅, позволяя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π³Π΄Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΊΠΎΠ΄: Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ мСстС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ»ΠΈ Π½Π° сСрвСрС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Ошибки Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ контСкста выполнСния ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ критичСскому падСнию ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ всСй систСмы.

Бинтаксис ΠΈ структура объявлСния ΠΌΠ΅Ρ‚ΠΎΠ΄Π°

ОбъявлСниС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° начинаСтся с ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова Ѐункция ΠΈΠ»ΠΈ Ѐункция (Π² зависимости ΠΎΡ‚ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ языка интСрфСйса, Π½ΠΎ тСхничСски это ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ‚ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°). БинтаксичСская конструкция Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ указания ΠΈΠΌΠ΅Π½ΠΈ, списка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках ΠΈ Ρ‚ΠΈΠΏΠ° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ описаниС Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² являСтся ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ΠΊ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΊΠΎΠ΄Π° ΠΈ использованию встроСнной подсказки Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π°.

Π’Π΅Π»ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ словами Π½Π°Ρ‡Π°Π»Π° ΠΈ ΠΊΠΎΠ½Ρ†Π° Π±Π»ΠΎΠΊΠ°. Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Ρ†ΠΈΠΊΠ»Ρ‹, условия ΠΈ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этим ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ случайноС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ прСдсказуСмым.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ значСния осущСствляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π’ΠΎΠ·Π²Ρ€Π°Ρ‚. Если ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ вызываСтся Π±Π΅Π· выраТСния, ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ НСопрСдСлСно. Если послС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ΠΎ становится Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π°. ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ выполнСния ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π΄ΠΎ достиТСния ΠΊΠΎΠ½Ρ†Π° Ρ‚Π΅Π»Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π² любой Ρ‚ΠΎΡ‡ΠΊΠ΅, Ρ‡Ρ‚ΠΎ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок ΠΈΠ»ΠΈ особых условий.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ сСрвСрном ΠΊΠΎΠ΄Π΅ строго Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ() ΠΈΠ»ΠΈ ΠžΠΏΠΎΠ²Π΅ΡΡ‚ΠΈΡ‚ΡŒ(). ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΈΡ… ΠΈΠ· сСрвСрного ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС выполнСния "Π‘Π΅Ρ€Π²Π΅Ρ€Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Π² клиСнтском контСкстС" ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Π² зависимости ΠΎΡ‚ направлСния Π²Ρ‹Π·ΠΎΠ²Π°.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ объявлСния простого ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ рассчитываСт скидку. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ‚ΠΈΠΏΡ‹ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ‡Ρ‚ΠΎ позволяСт ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ Π½Π° Π»Π΅Ρ‚Ρƒ.

Ѐункция Π Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΠ‘ΠΊΠΈΠ΄ΠΊΡƒ(Число Π‘ΡƒΠΌΠΌΠ°, Число ΠŸΡ€ΠΎΡ†Π΅Π½Ρ‚Π‘ΠΊΠΈΠ΄ΠΊΠΈ) Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Число

Если Π‘ΡƒΠΌΠΌΠ° < 0 Π’ΠΎΠ³Π΄Π°

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π‘ΡƒΠΌΠΌΠ° * ΠŸΡ€ΠΎΡ†Π΅Π½Ρ‚Π‘ΠΊΠΈΠ΄ΠΊΠΈ / 100;

ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

ИспользованиС Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ Ρ‚ΠΈΠΏΠΎΠ², ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅ (Число), являСтся Π»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π­Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ докумСнтация для Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, Π½ΠΎ ΠΈ инструкция для компилятора 1Π‘. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ выполнСния, услоТняя ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ.

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ выполнСния: ΠšΠ»ΠΈΠ΅Π½Ρ‚, Π‘Π΅Ρ€Π²Π΅Ρ€ ΠΈ Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ

Одной ΠΈΠ· самых слоТных Ρ‚Π΅ΠΌ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² являСтся ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π³Π΄Π΅ физичСски выполняСтся ΠΊΠΎΠ΄ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ раздСляСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° клиСнтскоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (толстый ΠΈΠ»ΠΈ Ρ‚ΠΎΠ½ΠΊΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚, Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€) ΠΈ сСрвСр 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΡ. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² любом ΠΈΠ· этих контСкстов, ΠΈ Π²Ρ‹Π±ΠΎΡ€ зависит ΠΎΡ‚ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ ΠΈ мСста Π²Ρ‹Π·ΠΎΠ²Π°.

Если ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠ΅ΠΉ &ΠΠ°ΠšΠ»ΠΈΠ΅Π½Ρ‚Π΅, ΠΎΠ½ выполняСтся ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° сторонС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’Π°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ доступ ΠΊ элСмСнтам Ρ„ΠΎΡ€ΠΌΡ‹, ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π° ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ (с ограничСниями). Они Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ прямого доступа ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ запросы ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ с Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠ΅ΠΉ &НаБСрвСрС Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π° сСрвСрС. Они ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΌ доступом ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ слоТныС Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Однако ΠΎΠ½ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΎΡ‚ интСрфСйса: ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρƒ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ· сСрвСрного ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ. БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ контСкст &ΠΠ°Π‘Π΅Ρ€Π²Π΅Ρ€Π΅Π‘Π΅Π·ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… доступа ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ сСанса.

πŸ“Š Π“Π΄Π΅ Ρ‡Π°Ρ‰Π΅ всСго Π²Ρ‹ допускаСтС ошибки ΠΏΡ€ΠΈ написании ΠΊΠΎΠ΄Π°?
Π’ клиСнтских ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ…
Π’ сСрвСрных ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ…
Π’ ΠΎΠ±Ρ‰ΠΈΡ… модулях
ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ стоит Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, выполняСмыС Π² контСкстС &ΠΠ°ΠšΠ»ΠΈΠ΅Π½Ρ‚Π΅Π’ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚Π΅Π‘Π΅Ρ€Π²Π΅Ρ€Π°. Π­Ρ‚ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ клиСнтскому ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ дСйствия, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡ€Π°Π² доступа ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°ΠΌΠΈ, Π½ΠΎ с ограничСниями ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния. ПониманиС Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ этими контСкстами критичСски Π²Π°ΠΆΠ½ΠΎ для проСктирования Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ прилоТСния.

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΈ сСрвСром происходит ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΈΠ»ΠΈ ΠΏΠΎ ссылкС, Π½ΠΎ с сущСствСнными ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ. ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ сСрвСрного ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ· ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° слоТныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Π΅ значСния, структуры) ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ, ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ сСти, Π΄Π΅ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ Π½Π° сСрвСрС, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ возвращаСтся ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ. Π­Ρ‚ΠΎΡ‚ процСсс Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

ΠžΠ±Π»Π°ΡΡ‚ΠΈ видимости ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² 1Π‘ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π² Π²Π°ΠΊΡƒΡƒΠΌΠ΅; ΠΎΠ½ΠΈ всСгда ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ. ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ„ΠΎΡ€ΠΌΡ‹, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΈΠ»ΠΈ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ β€” ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… Π΄ΠΈΠΊΡ‚ΡƒΠ΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π° доступности ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². ПониманиС ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ позволяСт ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ дублирования Π»ΠΎΠ³ΠΈΠΊΠΈ.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ модуля ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ Π΅Π³ΠΎ Ρ„ΠΎΡ€ΠΌ. Они часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ событий ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠŸΠ΅Ρ€Π΅Π΄Π—Π°ΠΏΠΈΡΡŒΡŽ ΠΈΠ»ΠΈ ΠŸΡ€ΠΈΠ§Ρ‚Π΅Π½ΠΈΠΈΠΠ°Π‘Π΅Ρ€Π²Π΅Ρ€Π΅. Π­Ρ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ доступ ΠΊ контСксту ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ экзСмпляра ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π½ΠΈΡ…, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±Ρ‰ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ рСсурсами ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Они ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Ρ‹ ΠΈΠ· любого мСста, Π³Π΄Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ использованиС Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ модуля. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΡ… ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ мСстом для размСщСния ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² расчСта Ρ†Π΅Π½ ΠΈΠ»ΠΈ формирования слоТных ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ².

Π’ΠΈΠΏ модуля Π”ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π’ΠΈΠΏΠΈΡ‡Π½ΠΎΠ΅ использованиС ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Волько Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° событий записи, провСдСния Π‘Π΅Ρ€Π²Π΅Ρ€ (для событий Π΄Π°Π½Π½Ρ‹Ρ…)
ΠœΠΎΠ΄ΡƒΠ»ΡŒ Ρ„ΠΎΡ€ΠΌΡ‹ Волько Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΠΎΡ€ΠΌΡ‹ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ интСрфСйсом, Ρ€Π΅Π°ΠΊΡ†ΠΈΠ΅ΠΉ Π½Π° дСйствия ΠšΠ»ΠΈΠ΅Π½Ρ‚
ΠžΠ±Ρ‰ΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎ (с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΏΡ€Π°Π²) Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, слоТная Π»ΠΎΠ³ΠΈΠΊΠ° Зависит ΠΎΡ‚ Π³Π°Π»ΠΎΡ‡Π΅ΠΊ "ΠšΠ»ΠΈΠ΅Π½Ρ‚/Π‘Π΅Ρ€Π²Π΅Ρ€"
ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎ для Ρ‚ΠΈΠΏΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², массовыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π‘Π΅Ρ€Π²Π΅Ρ€

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… систСм Π²Π°ΠΆΠ½ΠΎ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π΅Π΄ΠΈΠ½ΠΎΠΉ отвСтствСнности. Если ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ 50-100 строк ΠΊΠΎΠ΄Π°, стоит Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡ ΠΎ Π΅Π³ΠΎ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. Π’Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ участков ΠΊΠΎΠ΄Π° Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±Ρ‰ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈ тСстированиС систСмы.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ прСфиксы Π² ΠΈΠΌΠ΅Π½Π°Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΠ±Ρ‰ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ для указания ΠΈΡ… назначСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "Π‘Π»ΡƒΠΆΠ΅Π±Π½Ρ‹ΠΉ.", "ΠžΠ±Ρ‰Π΅Π³ΠΎΠΠ°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ." ΠΈΠ»ΠΈ "Π Π°Π±ΠΎΡ‚Π°Π‘Π€Π°ΠΉΠ»Π°ΠΌΠΈ.". Π­Ρ‚ΠΎ ускорит поиск Π½ΡƒΠΆΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π±Π°Π·Π΅ ΠΊΠΎΠ΄Π°.

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²: По Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΈ По ссылкС

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² 1Π‘ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΌΠ½ΠΎΠ³ΠΈΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ языкам программирования, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ свои особСнности, связанныС с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ (копируСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) ΠΈΠ»ΠΈ ΠΏΠΎ ссылкС (пСрСдаСтся адрСс ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ). Π’Ρ‹Π±ΠΎΡ€ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° влияСт Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ измСнСния исходных Π΄Π°Π½Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ копию Π΄Π°Π½Π½Ρ‹Ρ…. ИзмСнСния, внСсСнныС Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π½Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅. Π­Ρ‚ΠΎ бСзопасный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, Π·Π°Ρ‰ΠΈΡ‰Π°ΡŽΡ‰ΠΈΠΉ исходныС Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ случайной ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

Для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠΎ ссылкС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Π—Π½Π°Ρ‡ (Π² старых вСрсиях) ΠΈΠ»ΠΈ отсутствиС Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° для измСняСмых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ способ β€” использованиС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π—Π½Π°Ρ‡ для фиксации ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, Π° для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠΎ ссылкС Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… конструкциях ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ просто имя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π±Π΅Π· копирования для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Однако, стоит ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ: Π² соврСмСнном встроСнном языкС 1Π‘ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ пСрСдаСтся ΠΏΠΎ ссылкС для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (измСняСтся исходный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚), Π½ΠΎ для ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² (Число, Π‘Ρ‚Ρ€ΠΎΠΊΠ°) β€” ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ. Π§Ρ‚ΠΎΠ±Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠΎΠΏΠΈΠΈ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Π—Π½Π°Ρ‡.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°Π±Π»ΠΈΡ† Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌΠΈ строк) ΠΏΠΎ ссылкС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ опасна, Ссли ΠΌΠ΅Ρ‚ΠΎΠ΄ случайно ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ структуру Π΄Π°Π½Π½Ρ‹Ρ…. ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Π—Π½Π°Ρ‡ для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π·Π°Ρ‰ΠΈΡ‚Π½ΡƒΡŽ копию.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ. Если ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ структуру Π±Π΅Π· ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова Π—Π½Π°Ρ‡, ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π½Π΅Π΅ Π½ΠΎΠ²Ρ‹Π΅ свойства, ΠΈ эти измСнСния сохранятся послС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Если ΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π—Π½Π°Ρ‡, ΠΌΠ΅Ρ‚ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΠΎΠΏΠΈΠ΅ΠΉ структуры.

Ѐункция Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΠ‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ(Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠŸΠ°Ρ€Π°ΠΌ, Π—Π½Π°Ρ‡ Число Π€Π»Π°Π³)

// ИзмСнСниС ΠŸΠ°Ρ€Π°ΠΌ повлияСт Π½Π° исходник

// ИзмСнСниС Π€Π»Π°Π³ Π½Π΅ повлияСт Π½Π° исходник

ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Вонкости Ρ€Π°Π±ΠΎΡ‚Ρ‹ с НСопрСдСлСно

Если Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ НСопрСдСлСно, Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π΅Π³ΠΎ свойствам Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка. ВсСгда провСряйтС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π½Π° НСопрСдСлСно ΠΏΠ΅Ρ€Π΅Π΄ использованиСм.

РСкурсия ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²

РСкурсивный Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² β€” ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄Π° Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π², вычислСния Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π»ΠΎΠ² ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ иСрархичСских справочников. Однако Π² срСдС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ использованиС рСкурсии Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ особой остороТности ΠΈΠ·-Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ стСка Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΈ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов Π½Π° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ контСкстов.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° consumes ΠΏΠ°ΠΌΡΡ‚ΡŒ стСка. ΠŸΡ€ΠΈ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΉ рСкурсии (тысячи Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ) ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с ошибкой пСрСполнСния стСка. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ ΠΈΠΌΠ΅Π΅Ρ‚ Π»ΠΈΠΌΠΈΡ‚Ρ‹ Π½Π° Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ влоТСнности Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ (Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрный). Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ эти ограничСния ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ТСстчС.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ рСкурсивных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² часто Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ ΠΊ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌ с использованиСм Ρ†ΠΈΠΊΠ»ΠΎΠ² ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… структур Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ стСк ΠΈΠ»ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ. Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ иСрархичСских справочников Π² Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠ°Ρ… Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнныС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ, Π° Π½Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ рСкурсивныС ΠΎΠ±Ρ…ΠΎΠ΄Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

Если рСкурсия Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‡Π΅Ρ‚ΠΊΠΎΠ΅ условиС Π²Ρ‹Ρ…ΠΎΠ΄Π° (Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ случай). ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ условия Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ бСсконСчному Ρ†ΠΈΠΊΠ»Ρƒ ΠΈ зависанию систСмы ΠΈΠ»ΠΈ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠΌΡƒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ процСсса. Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ рСкурсивный Π²Ρ‹Π·ΠΎΠ² сСрвСрного ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ· клиСнтского (Ρ‡Π΅Ρ€Π΅Π· Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ) ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΡ€Π°ΠΉΠ½Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌ ΠΈΠ·-Π·Π° сСтСвых Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ.

πŸ’‘

Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ рСкурсивных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² сСрвСрных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΠ· клиСнтского контСкста. Если Π»ΠΎΠ³ΠΈΠΊΠ° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ…ΠΎΠ΄Π° Π΄Π΅Ρ€Π΅Π²Π°, выполняйтС всю Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π½Π° сСрвСрС ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ, возвращая ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΡƒΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΈ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ

ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π² 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ поддСрТиваСтся ΠΌΠΎΡ‰Π½Ρ‹ΠΌ встроСнным ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠΌ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ останова, ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΏΠΎ шагам. Π­Ρ‚ΠΎ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΉ инструмСнт для понимания ΠΏΠΎΡ‚ΠΎΠΊΠ° выполнСния ΠΈ поиска логичСских ошибок.

Одной ΠΈΠ· самых распространСнных ошибок являСтся Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ контСкста выполнСния. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹ часто ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ сСрвСрный ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ· ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π±Π΅Π· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ &ΠΠ°ΠšΠ»ΠΈΠ΅Π½Ρ‚Π΅ Ρƒ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ Π·Π°Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΊΠ°ΠΊ &НаБСрвСрС. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ошибкам Π²ΠΈΠ΄Π° "НСдопустимый Π²Ρ‹Π·ΠΎΠ² сСрвСрного ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ· клиСнтского контСкста".

Другая частая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” нСкоррСктная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Если ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ число, Π° Π² случаС ошибки Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ НСопрСдСлСно, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ этот сцСнарий. Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ошибкам Ρ‚ΠΈΠΏΠ° "ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ значСниями Ρ‚ΠΈΠΏΠ° НСопрСдСлСно Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ".

  • πŸ” ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΈΠΏΠΎΠ²: ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π’ΠΈΠΏΠ—Π½Ρ‡() ΠΈΠ»ΠΈ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ для контроля Ρ‚ΠΈΠΏΠΎΠ² входящих Π΄Π°Π½Π½Ρ‹Ρ…, особСнно Π² ΠΎΠ±Ρ‰ΠΈΡ… модулях.
  • πŸ“‰ Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅: Π’ сСрвСрных ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΆΡƒΡ€Π½Π°Π» рСгистрации для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π² ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠΉ эксплуатации, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Ρ‚Π°ΠΌ нСдоступСн.
  • πŸ›‘οΈ Π˜Π·ΠΎΠ»ΡΡ†ΠΈΡ: НС ΡΠΌΠ΅ΡˆΠΈΠ²Π°ΠΉΡ‚Π΅ Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с интСрфСйсом ΠΈ Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅.
  • ⚑ ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: ΠœΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ количСство ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² "ΠšΠ»ΠΈΠ΅Π½Ρ‚-Π‘Π΅Ρ€Π²Π΅Ρ€". Π›ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ сСрвСрный ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сдСлаСт всю Ρ€Π°Π±ΠΎΡ‚Ρƒ, Ρ‡Π΅ΠΌ Π΄Π΅ΡΡΡ‚ΡŒ ΠΌΠ΅Π»ΠΊΠΈΡ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ².

Для Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ встроСнныС инструмСнты Π·Π°ΠΌΠ΅Ρ€Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния. ΠžΠ±Π΅Ρ€Π½ΠΈΡ‚Π΅ критичСский участок ΠΊΠΎΠ΄Π° Π² ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ с ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π΄ΠΎ ΠΈ послС выполнСния. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ "ΡƒΠ·ΠΊΠΈΠ΅ мСста" Π² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивов Π΄Π°Π½Π½Ρ‹Ρ….

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΈ возмоТности ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° ΠΌΠΎΠ³ΡƒΡ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² Π½ΠΎΠ²Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅. ΠΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π½ΠΎΠ²Ρ‹Ρ… функциях ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ профилирования всСгда провСряйтС Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Ρ„ΠΈΡ€ΠΌΡ‹ "1Π‘" ΠΈΠ»ΠΈ Π² справкС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π° вашСй вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

β˜‘οΈ Π§Π΅ΠΊ-лист ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 5

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π€ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΈ ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ Π² 1Π‘?

ВСхничСски Π² соврСмСнном встроСнном языкС 1Π‘ Π½Π΅Ρ‚ раздСлСния Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ синтаксиса объявлСния (всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ слово Ѐункция). Π Π°Π·Π½ΠΈΡ†Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ с Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ. Если ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ функция Π² выраТСниях. Если Π½Π΅Ρ‚ β€” ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°. Однако для читаСмости ΠΊΠΎΠ΄Π° программисты часто мыслСнно Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ ΠΈΡ….

МоТно Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄?

Π”Π°, Π² 1Π‘ поддСрТиваСтся ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° описаний ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ описаниС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Ρ‡Π΅Ρ€Π΅Π· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠœΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ»ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с описаниями, хотя прямой Π²Ρ‹Π·ΠΎΠ² "ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ" Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ использования спСцифичСских конструкций ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²-ΠΎΠ±Π΅Ρ€Ρ‚ΠΎΠΊ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ сСрвСрный ΠΌΠ΅Ρ‚ΠΎΠ΄ выполняСтся ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΈΠ· Ρ„ΠΎΡ€ΠΌΡ‹?

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² сСрвСрного ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ· клиСнтского прилоТСния Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ сСтСвого ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, сСриализации ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. Если Π²Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ сСрвСрный ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅, Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΡΡƒΠΌΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ замСдлСнию Ρ€Π°Π±ΠΎΡ‚Ρ‹. РСшСниС β€” ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ†ΠΈΠΊΠ» выполнялся Π½Π° сСрвСрС Π² ΠΎΠ΄Π½ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅.

Как ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ ΠΎΠ±Ρ‰Π΅Π³ΠΎ модуля?

Доступ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ ΠΎΠ±Ρ‰ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ рСгулируСтся ΠΏΡ€Π°Π²Π°ΠΌΠΈ доступа Π² Ρ€ΠΎΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π’ свойствах ΠΎΠ±Ρ‰Π΅Π³ΠΎ модуля ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€ΠΎΠ»Π΅ΠΉ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, использованиС ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° (ΠŸΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉΠ Π΅ΠΆΠΈΠΌ(Π˜ΡΡ‚ΠΈΠ½Π°)) Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° позволяСт ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡ€Π°Π², Π½ΠΎ это Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ с ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ "Π₯востовая рСкурсия" ΠΈ поддСрТиваСтся Π»ΠΈ ΠΎΠ½Π° Π² 1Π‘?

Π₯востовая рСкурсия β€” это оптимизация, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ рСкурсивный Π²Ρ‹Π·ΠΎΠ² являСтся послСднСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠ°Π΄Ρ€ стСка. Π’ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ явная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° хвостовой рСкурсии ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° ΠΈ зависит ΠΎΡ‚ вСрсии компилятора. ΠŸΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° Π½Π΅Π΅ Π½Π΅ рСкомСндуСтся; для Π³Π»ΡƒΠ±ΠΎΠΊΠΈΡ… ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ»Ρ‹.