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

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

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

Π’Ρ‹Π±ΠΎΡ€ мСста размСщСния ΠΊΠΎΠ΄Π°: ΠžΠ±Ρ‰ΠΈΠ΅ ΠΈ ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ сам ΠΊΠΎΠ΄, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ, ΠΊΡƒΠ΄Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Π³ΠΎ слСдуСт ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ. Π’ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ 1Π‘ сущСствуСт Ρ‡Π΅Ρ‚ΠΊΠΎΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ отвСтствСнности ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Π’Ρ‹Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ мСста влияСт Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ вашСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… частях систСмы.

Если Π»ΠΎΠ³ΠΈΠΊΠ° являСтся ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈ Π½Π΅ зависит ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, Π΅Ρ‘ слСдуСт Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π² ΠΎΠ±Ρ‰ΠΈΡ… модулях. Π’Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ доступны ΠΈΠ· любого мСста ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ условии ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… настроСк Π³Π°Π»ΠΎΡ‡Π΅ΠΊ Π² свойствах модуля. НапримСр, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ расчСта Π΄Π°Ρ‚ ΠΈΠ»ΠΈ форматирования строк ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ выносят ΠΈΠΌΠ΅Π½Π½ΠΎ сюда.

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

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ контСкстС выполнСния. НСкоторыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° сСрвСрС, Π° Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈ β€” Π² ΠΎΠ±ΠΎΠΈΡ… контСкстах. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ контСкста ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС выполнСния.

πŸ“Š Π“Π΄Π΅ Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ?
Π’ ΠΎΠ±Ρ‰Π΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅
Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ Ρ„ΠΎΡ€ΠΌΡ‹
Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°
Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

Бинтаксис объявлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

ОбъявлСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ начинаСтся с ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова Ѐункция. Π—Π° Π½ΠΈΠΌ слСдуСт имя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… области видимости ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ имСнования (Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Π±ΡƒΠΊΠ²Ρ‹, Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ²). ПослС ΠΈΠΌΠ΅Π½ΠΈ Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ. ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ½Ρ†Π΅ списка ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ссли ΠΎΠ½ΠΈ Π½Π΅ Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅. Випизация ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² 1Π‘ являСтся динамичСской, ΠΎΠ΄Π½Π°ΠΊΠΎ явноС ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°.

Π’Π΅Π»ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ словами Ѐункция ΠΈ ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’Π½ΡƒΡ‚Ρ€ΠΈ этого Π±Π»ΠΎΠΊΠ° происходит вся основная Π»ΠΎΠ³ΠΈΠΊΠ°. Для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° значСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π’ΠΎΠ·Π²Ρ€Π°Ρ‚. Если ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ явно, функция Π²Π΅Ρ€Π½Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ НСопрСдСлСно, Ρ‡Ρ‚ΠΎ часто являСтся источником ошибок.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ объявлСния простой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΉ Π΄Π²Π° числа ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅ΠΉ ΠΈΡ… сумму:

Ѐункция Π‘Π»ΠΎΠΆΠΈΡ‚ΡŒΠ§ΠΈΡΠ»Π°(Число1, Число2)

Π‘ΡƒΠΌΠΌΠ° = Число1 + Число2;

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π‘ΡƒΠΌΠΌΠ°;

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

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎΡ‡ΠΊΡƒ с запятой Π² ΠΊΠΎΠ½Ρ†Π΅ строк. Π’ языкС 1Π‘ это ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ инструкций. Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ этого ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ синтаксичСской ошибкС ΠΏΡ€ΠΈ компиляции модуля.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ прСфиксы Π² ΠΈΠΌΠ΅Π½Π°Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для быстрого понимания ΠΈΡ… назначСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "Π Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ...", "ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ...", "ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ...". Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΊΠΎΠ΄Ρƒ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… конфигурациях.

ΠžΠ±Π»Π°ΡΡ‚ΠΈ видимости ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ

Одной ΠΈΠ· самых слоТных Ρ‚Π΅ΠΌ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² являСтся ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π³Π΄Π΅ "Π²ΠΈΠ΄Π½Π°" Ρ‚Π° ΠΈΠ»ΠΈ иная пСрСмСнная. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Они ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ врСмя выполнСния этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ°ΡŽΡ‚ΡΡ послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π΅Ρ‘ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Если Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ·Π²Π½Π΅, ΠΈΡ… слСдуСт ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, объявлСнной Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ Π² глобальной области, Π±Π΅Π· явной ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС "ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°".

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² 1Π‘ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ &ΠΠ°ΠšΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΈΠ»ΠΈ &НаБСрвСрС Π² Π½Π°Ρ‡Π°Π»Π΅ модуля, Π½ΠΎ ΠΈΡ… использованиС считаСтся ΠΏΠ»ΠΎΡ…ΠΈΠΌ Ρ‚ΠΎΠ½ΠΎΠΌ Π² соврСмСнной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. Π­Ρ‚ΠΎ услоТняСт ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΈ тСстированиС ΠΊΠΎΠ΄Π°.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ использования ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Ρ€Π°Π·Π½Ρ‹Ρ… уровнях влоТСнности. Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ пСрСмСнная с Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈ глобальная, "ΠΏΠ΅Ρ€Π΅ΠΊΡ€ΠΎΠ΅Ρ‚" Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… своСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ нСпрСдсказуСмому повСдСнию систСмы.

Для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ слоТных структур Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΈΠ»ΠΈ Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, рСкомСндуСтся ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΠΎ ссылкС, Ссли трСбуСтся ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ исходных Π΄Π°Π½Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Однако Π² 1Π‘ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ для простых Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΏΠΎ ссылкС для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Как ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ массив ΠΏΠΎ ссылкС?

Для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ массива ΠΈΠ»ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΠΎ ссылкС (Ρ‡Ρ‚ΠΎΠ±Ρ‹ измСнСния ΡΠΎΡ…Ρ€Π°Π½ΠΈΠ»ΠΈΡΡŒ послС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ) достаточно просто ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π² 1Π‘ всСгда ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ссылкС. Для primitiv-Ρ‚ΠΈΠΏΠΎΠ² (Число, Π‘Ρ‚Ρ€ΠΎΠΊΠ°) это Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· использования ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ Π² Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния ΠΈ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…

Ѐункция Π² 1Π‘ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ любого Ρ‚ΠΈΠΏΠ°: ΠΎΡ‚ простого числа ΠΈΠ»ΠΈ Π±ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ значСния Π΄ΠΎ слоТного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ссылки Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚. Π’ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния Π½Π΅ дСкларируСтся Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΠ½ опрСдСляСтся динамичСски Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π’ΠΎΠ·Π²Ρ€Π°Ρ‚.

Частой ошибкой являСтся отсутствиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π²Π΅Ρ‚Π²Π΅ΠΉ условного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°. Если функция Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ сцСнарии выполнСния ΠΊΠΎΠ΄Π° Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ΡΡ явным Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠΌ значСния.

Иногда функция ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ НСопрСдСлСно Π² случаС ошибки ΠΈΠ»ΠΈ отсутствия Π΄Π°Π½Π½Ρ‹Ρ…. Π’Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ падСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ свойству Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ЧастоС использованиС
Π‘ΡƒΠ»Π΅Π²ΠΎ Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π˜ΡΡ‚ΠΈΠ½Π°; ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° условий, валидация
Число Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ 100.50; РасчСты, суммы, количСства
Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ "Ошибка"; Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сообщСний, ΠΊΠΎΠ΄ΠΎΠ²
ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°; ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π½Π°Π±ΠΎΡ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…

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

πŸ’‘

ВсСгда явно Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π΄Π°ΠΆΠ΅ Ссли это НСопрСдСлСно. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ прСдсказуСмым ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ Π°Π½Π°Π»ΠΈΠ· статичСскими Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ΠΊΠΎΠ΄Π°.

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ функция написана, Π΅Ρ‘ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ. Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ происходит ΠΏΠΎ Π΅Ρ‘ ΠΈΠΌΠ΅Π½ΠΈ с пСрСчислСниСм Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСпосрСдствСнно Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ.

Если функция находится Π² ΠΎΠ±Ρ‰Π΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅, ΠΊ Π½Π΅ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· имя модуля. Бинтаксис выглядит ΠΊΠ°ΠΊ Π˜ΠΌΡΠœΠΎΠ΄ΡƒΠ»Ρ.Π˜ΠΌΡΠ€ΡƒΠ½ΠΊΡ†ΠΈΠΈ(). Π­Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ обСспСчиваСт ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² большой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

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

  • πŸ”Ή ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρƒ ΠΎΠ±Ρ‰Π΅Π³ΠΎ модуля установлСна Π³Π°Π»ΠΎΡ‡ΠΊΠ° "Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ", Ссли ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… подсистСм.
  • πŸ”Ή Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ контСкст Π²Ρ‹Π·ΠΎΠ²Π° (ΠšΠ»ΠΈΠ΅Π½Ρ‚/Π‘Π΅Ρ€Π²Π΅Ρ€) соотвСтствуСт контСксту выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
  • πŸ”Ή ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивов Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ†Π΅Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ мСТконтСкстных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ².

НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ. Если ваша функция ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…), ΠΎΠ±Π΅Ρ€Π½ΠΈΡ‚Π΅ Π²Ρ‹Π·ΠΎΠ² Π² ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°...Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌ ΠΊΠΎΠ΄Π΅.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ΠΌ

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

ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΈ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΏΡ€ΠΈ создании

ΠŸΡ€ΠΎΡ†Π΅ΡΡ написания ΠΊΠΎΠ΄Π° Ρ€Π΅Π΄ΠΊΠΎ обходится Π±Π΅Π· ошибок. Π‘Π°ΠΌΠΎΠΉ распространСнной ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ являСтся нСсоотвСтствиС количСства ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹ΠΌ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ строго слСдит Π·Π° этим ΠΈ выдаст сообщСниС ΠΎΠ± ошибкС ΠΏΡ€ΠΈ запускС.

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° частая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” бСсконСчная рСкурсия. Π­Ρ‚ΠΎ происходит, ΠΊΠΎΠ³Π΄Π° функция Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ саму сСбя Π±Π΅Π· условия Π²Ρ‹Ρ…ΠΎΠ΄Π°. ВсСгда провСряйтС Π»ΠΎΠ³ΠΈΠΊΡƒ рСкурсивных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΈ устанавливайтС Π»ΠΈΠΌΠΈΡ‚Ρ‹ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ влоТСнности.

Для поиска ошибок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ встроСнный ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ. Π’ΠΎΡ‡ΠΊΠΈ останова ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ прямо Π½Π° строкС объявлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π­Ρ‚ΠΎ позволяСт пошагово ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ выполнСния.

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

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΆΡƒΡ€Π½Π°Π» рСгистрации для отслСТивания Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠΉ эксплуатации. Π’Ρ‹Π²ΠΎΠ΄ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Ρ… сообщСний Ρ‡Π΅Ρ€Π΅Π· Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ() допустим Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° этапС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π½ΠΎ нСдопустим Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠΎΠ΄Π΅.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли функция Π½Π΅ Π²ΠΈΠ΄Π½Π°?

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ свойства ΠΎΠ±Ρ‰Π΅Π³ΠΎ модуля. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ стоит Π³Π°Π»ΠΎΡ‡ΠΊΠ° "Π’Ρ‹Π·ΠΎΠ² сСрвСра" ΠΈΠ»ΠΈ "Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ". Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π½Π΅ скрыта Π»ΠΈ функция ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом "Экспорт", Ссли Π²Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ Π΅Ρ‘ ΠΈΠ·Π²Π½Π΅ модуля.

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

МоТно Π»ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ?

ΠΠ°ΠΏΡ€ΡΠΌΡƒΡŽ функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Однако Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΈΠ»ΠΈ Массив ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π­Ρ‚ΠΎ стандартная ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Π² 1Π‘ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ комплСксных Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².

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

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ѐункция ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² выраТСниях. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° выполняСт дСйствия, Π½ΠΎ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ значСния (тСхничСски Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ НСопрСдСлСно) ΠΈ вызываСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ инструкциСй.

Как ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΏΠΎ ссылкС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ?

ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ (число, строка) ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ…, Π½ΡƒΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, структуры) ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ссылкС, ΠΈ ΠΈΡ… свойства ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

МоТно Π»ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ?

НСт, прямой Π²Ρ‹Π·ΠΎΠ² Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΠΈΠ· сообраТСний бСзопасности ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹. Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π²Ρ‹Π·ΠΎΠ²Π° сСрвСрных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΠ· клиСнтского контСкста, помСчая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ &НаБСрвСрС ΠΈ вызывая Π΅Ρ‘ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ ΠΎΠ±Ρ‰Π΅Π³ΠΎ модуля.