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

ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ‚ΠΈΠΏΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Ρ‡Π΅Ρ‚ Π½Π΅ сформируСтся, Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Π½Π΅ провСдСтся. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° прСдоставляСт нСсколько ΠΌΠΎΡ‰Π½Ρ‹Ρ… инструмСнтов для интроспСкции ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ являСтся встроСнная функция Π’ΠΈΠΏΠ—Π½Ρ‡(), ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ½ΠΊΠΈΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со слоТными структурами.

ПониманиС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ°, позволяСт ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ ΠΈ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΊΠΎΠ΄. Π­Ρ‚ΠΎ особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈ написании ΠΎΠ±Ρ‰ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² событий ΠΈ слоТных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π³Π΄Π΅ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ нСпрСдсказуСмыми.

Ѐункция Π’ΠΈΠΏΠ—Π½Ρ‡ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ дСскриптора Ρ‚ΠΈΠΏΠ°

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ инструмСнтом программиста 1Π‘ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой Π·Π°Π΄Π°Ρ‡ΠΈ являСтся встроСнная функция Π’ΠΈΠΏΠ—Π½Ρ‡(). Она ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° ОписаниСВипов ΠΈΠ»ΠΈ дСскриптор Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ класс ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ значСния. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Ρ€Π°Π²Π΅Π½ НСопрСдСлСно, Π΄Π°ΠΆΠ΅ Ссли само провСряСмоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ пустоС.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ дСскриптор Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для сравнСния. Π­Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ способ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Π΅Π΅, Ρ‡Π΅ΠΌ Π°Π½Π°Π»ΠΈΠ· строкового прСдставлСния ΠΈΠΌΠ΅Π½ΠΈ Ρ‚ΠΈΠΏΠ°. Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ происходит ΠΏΠΎ ссылкС Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π‘Ρ‚Ρ€ΠΎΠΊΠ°() для привСдСния Ρ‚ΠΈΠΏΠ° ΠΊ тСксту с Ρ†Π΅Π»ΡŒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ сравнСния строк. Π­Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ошибкам ΠΏΡ€ΠΈ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΠΌΠ΅Π½ Ρ‚ΠΈΠΏΠΎΠ² Π² Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… Ρ€Π΅Π»ΠΈΠ·Π°Ρ….

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ получСния Ρ‚ΠΈΠΏΠ°. Π’Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ присваиваСтС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π”Π°Π»Π΅Π΅ эту ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² условных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ….

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = 123;

Π’ΠΈΠΏΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ = Π’ΠΈΠΏΠ—Π½Ρ‡(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅);

Если Π’ΠΈΠΏΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ = Π’ΠΈΠΏ("Число") Π’ΠΎΠ³Π΄Π°

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π­Ρ‚ΠΎ число");

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

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ функция Π’ΠΈΠΏΠ—Π½Ρ‡() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΈΠΏ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ экзСмпляра. Если Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΄ΠΈΡ‚Π΅ Π² Π½Π΅Π΅ Null (НСопрСдСлСно), Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ‚ΠΈΠΏ НСопрСдСлСно, Π° Π½Π΅ Ρ‚ΠΈΠΏ Ρ‚ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΡƒΠ΄Π° это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ записано Ρ€Π°Π½Π΅Π΅.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ контСкст Π’ΠΈΠΏ() для получСния Ρ‚ΠΈΠΏΠ° ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ строкой, Π° Π’ΠΈΠΏΠ—Π½Ρ‡() β€” для получСния Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ значСния. Π­Ρ‚ΠΎ Π΄Π²Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ… инструмСнта.

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ "Π•Π‘Π’Π¬"

Помимо явного Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, язык 1Π‘ прСдоставляСт ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ синтаксичСский сахар β€” ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π•Π‘Π’Π¬. Он позволяСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ значСния ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ прямо Π² условии вСтвлСния. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹ΠΌ, избавляя ΠΎΡ‚ нСобходимости ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для хранСния дСскрипторов.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π•Π‘Π’Π¬ особСнно ΡƒΠ΄ΠΎΠ±Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сразу Π½Π° соотвСтствиС нСскольким Ρ‚ΠΈΠΏΠ°ΠΌ. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ И ΠΈ Π˜Π›Π˜ Π²Π½ΡƒΡ‚Ρ€ΠΈ конструкции ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. Π­Ρ‚ΠΎ часто трСбуСтся ΠΏΡ€ΠΈ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π»ΠΈΠ±ΠΎ Π‘Ρ‚Ρ€ΠΎΠΊΡƒ, Π»ΠΈΠ±ΠΎ Число.

  • βœ… ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π•Π‘Π’Π¬ выполняСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ быстрСС, Ρ‡Π΅ΠΌ Ρ€ΡƒΡ‡Π½ΠΎΠ΅ сравнСниС дСскрипторов Π² Ρ†ΠΈΠΊΠ»Π°Ρ….
  • βœ… ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π½Π° нСсколько Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ ΠΈΠ»ΠΈ логичСскиС связки.
  • βœ… ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ условия, максимально Π±Π»ΠΈΠ·ΠΊΠΈΠ΅ ΠΊ СстСствСнному языку.

Бинтаксис ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π’Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Π•Π‘Π’Π¬ ΠΈ список Ρ‚ΠΈΠΏΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ соотвСтствуСт хотя Π±Ρ‹ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· пСрСчислСнных, условиС считаСтся истинным.

Если ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π•Π‘Π’Π¬ Число, Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π’ΠΎΠ³Π΄Π°

// ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° допустимых Ρ‚ΠΈΠΏΠΎΠ²

Π˜Π½Π°Ρ‡Π΅

Π’Ρ‹Π·Π²Π°Ρ‚ΡŒΠ˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ "НСдопустимый Ρ‚ΠΈΠΏ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°";

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

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‡Π΅Ρ€Π΅Π· Π•Π‘Π’Π¬ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ с составными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, описанными Π² ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…. Однако для динамичСски создаваСмых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ явноС пСрСчислСниС Ρ‚ΠΈΠΏΠΎΠ² ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ОписаниСВипов.

πŸ“Š Какой способ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅?
Π’ΠΈΠΏΠ—Π½Ρ‡() ΠΈ сравнСниС
ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π•Π‘Π’Π¬
Π‘Ρ‚Ρ€ΠΎΠΊΠ°(Π’ΠΈΠΏΠ—Π½Ρ‡())
Π’Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌΠ—Π°ΠΏΠΈΡΠΈ

Π Π°Π±ΠΎΡ‚Π° со слоТными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ: ΠœΠ°ΡΡΠΈΠ²Ρ‹, Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹, БоотвСтствия

Π’ соврСмСнных конфигурациях 1Π‘ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° для Массива, Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ БоотвСтствия ΠΈΠΌΠ΅Π΅Ρ‚ свои Π½ΡŽΠ°Π½ΡΡ‹. Ѐункция Π’ΠΈΠΏΠ—Π½Ρ‡() Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΎΠ±Ρ‰ΠΈΠΉ Ρ‚ΠΈΠΏ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Π½ΠΎ Π½Π΅ раскроСт структуру Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… элСмСнтов Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°.

НапримСр, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ Массив, Ρ‚ΠΈΠΏ значСния Π±ΡƒΠ΄Π΅Ρ‚ просто Массив. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ находится Π²Π½ΡƒΡ‚Ρ€ΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ свойство Π’ΠΈΠΏΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚Π°, Ссли Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… коллСкциях (Ρ‡Ρ‚ΠΎ встрСчаСтся Ρ€Π΅Π΄ΠΊΠΎ Π² стандартных ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°Ρ… 1Π‘, Ρ‡Π°Ρ‰Π΅ это просто динамичСскиС массивы).

Для Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ критичСски Π²Π°ΠΆΠ½ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, Π½ΠΎ ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ. Часто Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡƒΡ‚Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Ρ‚ΠΈΠΏΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ сущСствования ΠΊΠ»ΡŽΡ‡Π° Π² структурС. Π­Ρ‚ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° слоТной структуры

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

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с БоотвСтствиями (ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) ситуация Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π°. Π’ΠΈΠΏ значСния самого соотвСтствия Π½Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΈΠΏΠ°Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ. Для Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° приходится ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ»Ρ‹ ΠΏΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° ссылочных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ пласт Π·Π°Π΄Π°Ρ‡ связан с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ссылок Π½Π° Π½ΠΈΡ…. Π’ 1Π‘ ссылка Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΈ сам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π² памяти β€” это Ρ€Π°Π·Π½Ρ‹Π΅ сущности с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ‚ΠΈΠΏΠ°, хотя ΠΎΠ½ΠΈ тСсно связаны. Ѐункция Π’ΠΈΠΏΠ—Π½Ρ‡() Ρ‡Π΅Ρ‚ΠΊΠΎ Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΈΡ….

Если пСрСмСнная содСрТит ссылку Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ "РСализацияВоваровУслуг", Ρ‚ΠΈΠΏ значСния Π±ΡƒΠ΄Π΅Ρ‚ Бсылка.РСализацияВоваровУслуг. Если ΠΆΠ΅ пСрСмСнная содСрТит ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΉ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΠžΠ±ΡŠΠ΅ΠΊΡ‚()), Ρ‚ΠΈΠΏ Π±ΡƒΠ΄Π΅Ρ‚ Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠžΠ±ΡŠΠ΅ΠΊΡ‚.РСализацияВоваровУслуг.

Π‘ΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ Π² ΠΊΠΎΠ΄Π΅ Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ (Π’ΠΈΠΏΠ—Π½Ρ‡) ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ
Бсылка Π½Π° элСмСнт справочника БправочникБсылка.НомСнклатура ЛСгковСсный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ρ…Ρ€Π°Π½ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€
ΠžΠ±ΡŠΠ΅ΠΊΡ‚ справочника Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠžΠ±ΡŠΠ΅ΠΊΡ‚.НомСнклатура Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ всС Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹, Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ записи Π² Π‘Π” для сохранСния
Π’Ρ‹Π±ΠΎΡ€ΠΊΠ° ΠΈΠ· запроса Π’Ρ‹Π±ΠΎΡ€ΠΊΠ°Π˜Π·Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Π—Π°ΠΏΡ€ΠΎΡΠ° БпСцифичСский Ρ‚ΠΈΠΏ для Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ запроса
Π’Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ строк, Π½Π΅ являСтся рСгистром свСдСний

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² сСрвСрныС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ клиСнтского Ρ‚ΠΈΠΏΠ° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π€ΠΎΡ€ΠΌΠ° ΠΈΠ»ΠΈ ΠŸΠΎΠ»Π΅Π€ΠΎΡ€ΠΌΡ‹), Ссли сСрвСрный ΠΊΠΎΠ΄ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ строго Π΄Π°Π½Π½Ρ‹Π΅. Π­Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ сСриализации.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ

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

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

ИспользованиС конструкции ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°...Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ для опрСдСлСния Ρ‚ΠΈΠΏΠ° являСтся ΠΏΠ»ΠΎΡ…ΠΈΠΌ Ρ‚ΠΎΠ½ΠΎΠΌ программирования Π² 1Π‘. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ тяТСловСсСн ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Π°Π²Π°Ρ€ΠΈΠΉΠ½Ρ‹Ρ… ситуаций, Π° Π½Π΅ для управлСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

// ΠŸΠ»ΠΎΡ…ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°

Π”Π»ΠΈΠ½Π°Π‘Ρ‚Ρ€ΠΎΠΊΠΈ = Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(ΠœΠΎΡΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ);

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

// Π—Π½Π°Ρ‡ΠΈΡ‚ Ρ‚ΠΈΠΏ Π½Π΅ строка

ΠšΠΎΠ½Π΅Ρ†ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠΈ;

// Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

Если ΠœΠΎΡΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Π•Π‘Π’Π¬ Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π’ΠΎΠ³Π΄Π°

Π”Π»ΠΈΠ½Π°Π‘Ρ‚Ρ€ΠΎΠΊΠΈ = Π‘Ρ‚Ρ€Π”Π»ΠΈΠ½Π°(ΠœΠΎΡΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ);

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

ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Null Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ падСния клиСнтского прилоТСния ΠΈ обСспСчиваСт ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ сСрвСра 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΡ ΠΏΠΎΠ΄ высокой Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ НСопрСдСлСно ΠΈΠΌΠ΅Π΅Ρ‚ свой Ρ‚ΠΈΠΏ?

Π’ систСмС Ρ‚ΠΈΠΏΠΎΠ² 1Π‘ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ НСопрСдСлСно считаСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ, ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. Ѐункция Π’ΠΈΠΏΠ—Π½Ρ‡(НСопрСдСлСно) Π²Π΅Ρ€Π½Π΅Ρ‚ Ρ‚ΠΈΠΏ "НСопрСдСлСно", Ρ‡Ρ‚ΠΎ позволяСт явно ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒ отсутствиС значСния ΠΎΡ‚ пустой строки ΠΈΠ»ΠΈ нуля.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…

Рассмотрим Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ: написаниС ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈ выполняСт Ρ€Π°Π·Π½Ρ‹Π΅ дСйствия Π² зависимости ΠΎΡ‚ Π΅Π³ΠΎ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹. Π­Ρ‚ΠΎ классичСский ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ° Π² 1Π‘, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ‡Π΅Ρ€Π΅Π· ΡΠ²Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Ρ‚ΠΈΠΏΠΎΠ².

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ массив строк, Π»ΠΈΠ±ΠΎ ΠΎΠ΄Π½Ρƒ строку. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС ΠΌΡ‹ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ, Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ β€” ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ СдинствСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π‘Π΅Π· Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ опрСдСлСния Ρ‚ΠΈΠΏΠ° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ бСзопасно Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

  • πŸ” ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, являСтся Π»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠΉ. Если Π΄Π° β€” ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌ Π΅Ρ‘ Π² Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ массив.
  • πŸ” ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, являСтся Π»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Массивом. Если Π΄Π° β€” Π²Π°Π»ΠΈΠ΄ΠΈΡ€ΡƒΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ всС элСмСнты β€” Π‘Ρ‚Ρ€ΠΎΠΊΠΈ.
  • πŸ” Если Ρ‚ΠΈΠΏ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π½ΠΈ ΠΏΠΎΠ΄ ΠΎΠ΄Π½ΠΎ условиС β€” Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ понятноС сообщСниС ΠΎΠ± ошибкС.

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ устойчивым ΠΊ измСнСниям. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π», добавляя ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π½ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, БписокЗначСний), просто дописывая Π½ΠΎΠ²Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ условия Если.

πŸ’‘

Валидация Ρ‚ΠΈΠΏΠΎΠ² Π½Π° Π²Ρ…ΠΎΠ΄Π΅ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ β€” это "Π³ΠΈΠ³ΠΈΠ΅Π½Π°" ΠΊΠΎΠ΄Π°. Π›ΡƒΡ‡ΡˆΠ΅ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒ Π² Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ сразу, Ρ‡Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² сСрСдинС слоТного Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° использованиС отступа ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², Ρ‡Ρ‚ΠΎ являСтся стандартом оформлСния ΠΊΠΎΠ΄Π° Π² экосистСмС 1Π‘.

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒΠ”Π°Π½Π½Ρ‹Π΅(ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€)

Если ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ = НСопрСдСлСно Π’ΠΎΠ³Π΄Π°

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

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

Если ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π•Π‘Π’Π¬ Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π’ΠΎΠ³Π΄Π°

// Π›ΠΎΠ³ΠΈΠΊΠ° для ΠΎΠ΄Π½ΠΎΠΉ строки

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° строки: " + ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€);

Π˜Π½Π°Ρ‡Π΅Π•ΡΠ»ΠΈ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π•Π‘Π’Π¬ Массив Π’ΠΎΠ³Π΄Π°

// Π›ΠΎΠ³ΠΈΠΊΠ° для массива

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Из ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π¦ΠΈΠΊΠ»

Если Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Π•Π‘Π’Π¬ Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π’ΠΎΠ³Π΄Π°

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ массива: " + Π­Π»Π΅ΠΌΠ΅Π½Ρ‚);

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

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Π˜Π½Π°Ρ‡Π΅

Π’Ρ‹Π·Π²Π°Ρ‚ΡŒΠ˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ "НСподдСрТиваСмый Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…";

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

ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

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

Как ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅ 1Π‘?

Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° (F10/F11) Π½Π°Π²Π΅Π΄ΠΈΡ‚Π΅ курсор ΠΌΡ‹ΡˆΠΈ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. Π’ΠΎ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ подсказкС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π΅Π³ΠΎ Ρ‚ΠΈΠΏ. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² ΠΎΠΊΠ½ΠΎ "ΠΠ°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹Π΅ значСния", Π³Π΄Π΅ Ρ‚ΠΈΠΏ отобраТаСтся Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅.

МоТно Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ ΡƒΠΆΠ΅ созданной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ?

Π”Π°, Π² 1Π‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ динамичСская типизация. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ число, Π° Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС ΠΊΠΎΠ΄Π° β€” строку. Π’ΠΈΠΏ значСния опрСдСляСтся содСрТимым Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ выполнСния строки ΠΊΠΎΠ΄Π°.

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π’ΠΈΠΏ() ΠΈ Π’ΠΈΠΏΠ—Π½Ρ‡()?

Ѐункция Π’ΠΈΠΏ() ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ строку с ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ‚ΠΈΠΏΠ° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π’ΠΈΠΏ("Число")) ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ дСскриптор этого Ρ‚ΠΈΠΏΠ°. Ѐункция Π’ΠΈΠΏΠ—Π½Ρ‡() ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ само Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ) ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ дСскриптор Ρ‚ΠΈΠΏΠ° этого значСния.

Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ являСтся ссылкой Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ справочник?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Если Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π•Π‘Π’Π¬ БправочникБсылка.Π˜ΠΌΡΠ‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠ° Π’ΠΎΠ³Π΄Π°. Π­Ρ‚ΠΎ самый быстрый ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ способ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ссылки срСди всСх Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ссылок.