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

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

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

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ строки Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ управляСмыС Ρ„ΠΎΡ€ΠΌΡ‹

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ интСрфСйса Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ управляСмых Ρ„ΠΎΡ€ΠΌ, основным инструмСнтом взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ являСтся ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ„ΠΎΡ€ΠΌΡ‹. Π—Π΄Π΅ΡΡŒ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ строки ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ инициируСтся дСйствиСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈΠ»ΠΈ клавиши Delete. Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ этого Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π’Π΅ΠΊΡƒΡ‰ΠΈΠ΅Π”Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ строку Π² элСмСнтС управлСния "Π’Π°Π±Π»ΠΈΡ‡Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅".

Π§Π°Ρ‰Π΅ всСго Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° саму строку Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ явного указания Π½Π° Ρ‚ΠΎ, какая ΠΈΠΌΠ΅Π½Π½ΠΎ строка ΠΏΠΎΠ΄Π»Π΅ΠΆΠΈΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ ΠΈΠ· списка. Π­Ρ‚ΠΎ обСспСчиваСт Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° сСрвСр.

БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ удалСния ΠΏΠΎ индСксу, ΠΎΠ΄Π½Π°ΠΊΠΎ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ считаСтся ΠΌΠ΅Π½Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ Π² динамичСских интСрфСйсах. Если список строк Π±Ρ‹Π» отсортирован ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… процСссов, индСкс ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ элСмСнт. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ использованиС ссылки Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ строки являСтся ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ Π² соврСмСнной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΠΎΠ΄ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.3.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. ΠŸΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ строки Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΅ΡΡ‚ΡŒ ΠΏΡ€Π°Π²Π° Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ доступа, ΠΈ транзакция Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Π²Π°Π½Π°, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π΅Π·ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ дСмонстрируСт бСзопасноС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ Π½Π° сущСствованиС Π΄Π°Π½Π½Ρ‹Ρ…:

Если НС Π’Π΅ΠΊΡƒΡ‰ΠΈΠ΅Π”Π°Π½Π½Ρ‹Π΅.ΠŸΡƒΡΡ‚Π°Ρ() Π’ΠΎΠ³Π΄Π°

Π’ΠΎΠ²Π°Ρ€Ρ‹.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(Π’Π΅ΠΊΡƒΡ‰ΠΈΠ΅Π”Π°Π½Π½Ρ‹Π΅);

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

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

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ GetCurrentRow() для получСния ссылки Π½Π° строку, Ссли Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ со слоТными Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ, Π³Π΄Π΅ прямоС ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Π’Π΅ΠΊΡƒΡ‰ΠΈΠ΅Π”Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½Ρ‹ΠΌ ΠΈΠ·-Π·Π° Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнтов Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°

Когда Ρ€Π΅Ρ‡ΡŒ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΎ сСрвСрной Π»ΠΎΠ³ΠΈΠΊΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² контСкст модуля ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π—Π΄Π΅ΡΡŒ Ρ€Π°Π±ΠΎΡ‚Π° с Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ Π’ΠΎΠ²Π°Ρ€Ρ‹ ΠΈΠ»ΠΈ Услуги осущСствляСтся Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ строк ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ здСсь Ρ‚Π°ΠΊΠΆΠ΅ выступаСт Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(), Π½ΠΎ синтаксис Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ.

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

Если ΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ строки, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π»ΠΈΠ±ΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто ΡΠΎΠ²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΏΡ‹Ρ‚Π°ΡΡΡŒ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ элСмСнты Π² Ρ†ΠΈΠΊΠ»Π΅ Для КаТдого. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ сбою ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ коллСкция мСняСтся Π² процСссС ΠΎΠ±Ρ…ΠΎΠ΄Π°. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ являСтся использованиС Ρ†ΠΈΠΊΠ»Π° с индСксом ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π±ΠΎΡ€ строк Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ список.

  • πŸ”Ή Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ() для ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ удалСния всСх строк ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ.
  • πŸ”Ή Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ удалСния элСмСнтов Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ†ΠΈΠΊΠ»Π° Для КаТдого β€” это Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ошибки выполнСния.
  • πŸ”Ή ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠΉΡ‚Π΅ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ строки Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° удалСния для прСдотвращСния ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.
  • πŸ”Ή ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими объСмами Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ удалСния строк ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ с использованиСм Ρ†ΠΈΠΊΠ»Π° ΠΏΠΎ индСксу:

ИндСкс = Π’ΠΎΠ²Π°Ρ€Ρ‹.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() - 1;

Пока ИндСкс >= 0 Цикл

Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’ΠΎΠ²Π°Ρ€Π° = Π’ΠΎΠ²Π°Ρ€Ρ‹[ИндСкс];

Если Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’ΠΎΠ²Π°Ρ€Π°.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ = 0 Π’ΠΎΠ³Π΄Π°

Π’ΠΎΠ²Π°Ρ€Ρ‹.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’ΠΎΠ²Π°Ρ€Π°);

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

ИндСкс = ИндСкс - 1;

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

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

πŸ“Š Какой ΠΌΠ΅Ρ‚ΠΎΠ΄ удалСния Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ всСго?
По индСксу Π² Ρ†ΠΈΠΊΠ»Π΅
ΠœΠ΅Ρ‚ΠΎΠ΄ Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°)
ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ всС
Π§Π΅Ρ€Π΅Π· запрос ΠΊ Π‘Π”

Π Π°Π±ΠΎΡ‚Π° с Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ ΠΈ ΠΈΠ·Π±Π΅Π³Π°Π½ΠΈΠ΅ ошибок ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ

Одной ΠΈΠ· самых ΠΊΠΎΠ²Π°Ρ€Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° встроСнном языкС 1Π‘ являСтся модификация ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π²ΠΎ врСмя Π΅Ρ‘ ΠΎΠ±Ρ…ΠΎΠ΄Π°. Когда Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Для КаТдого Π‘Ρ‚Ρ€ΠΎΠΊΠ° Из Π’ΠΎΠ²Π°Ρ€Ρ‹, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° создаСт Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€. Если Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π° Π²Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ удалСния для Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки, ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ "сбиваСтся", ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ строка ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π°, Π»ΠΈΠ±ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка "ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π°".

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

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. Никогда Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Для КаТдого для удалСния элСмСнтов ΠΈΠ· Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€. Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ логичСским ошибкам ΠΈΠ»ΠΈ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠΌΡƒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ скрипта.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ бСзопасного удалСния с использованиСм Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ списка:

Π‘Ρ‚Ρ€ΠΎΠΊΠΈΠšΠ£Π΄Π°Π»Π΅Π½ΠΈΡŽ = Новый Массив;

Для КаТдого Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’ΠΎΠ²Π°Ρ€Π° Из Π’ΠΎΠ²Π°Ρ€Ρ‹ Π¦ΠΈΠΊΠ»

Если Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’ΠΎΠ²Π°Ρ€Π°.Π¦Π΅Π½Π° < 0 Π’ΠΎΠ³Π΄Π°

Π‘Ρ‚Ρ€ΠΎΠΊΠΈΠšΠ£Π΄Π°Π»Π΅Π½ΠΈΡŽ.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°Π’ΠΎΠ²Π°Ρ€Π°);

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

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

Для КаТдого Π‘Ρ‚Ρ€ΠΎΠΊΠ° Из Π‘Ρ‚Ρ€ΠΎΠΊΠΈΠšΠ£Π΄Π°Π»Π΅Π½ΠΈΡŽ Π¦ΠΈΠΊΠ»

Π’ΠΎΠ²Π°Ρ€Ρ‹.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°);

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

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

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ†ΠΈΠΊΠ» с ΠΊΠΎΠ½Ρ†Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ бСзопасно?

ΠŸΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ элСмСнта с индСксом N, всС элСмСнты с индСксами большС N ΡΠ΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ N. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ с индСксами мСньшС N (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π΅Ρ‰Π΅ Π½Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ ΠΏΡ€ΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ с ΠΊΠΎΠ½Ρ†Π°) ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π½Π° своих мСстах, ΠΈ ΠΈΡ… индСксы Π½Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ.

ИспользованиС запросов для массового удалСния Π΄Π°Π½Π½Ρ‹Ρ…

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

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π£Π”ΠΠ›Π˜Π’Π¬ Π˜Π— позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ удалСния Π½Π° сторонС сСрвСра Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ…ΠΎΠ΄. Π­Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ускоряСт процСсс Π² дСсятки Ρ€Π°Π·, Π½ΠΎ ΠΈ сниТаСт Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ‚Π°Π±Π»ΠΈΡ†, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ опСрация выполняСтся Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎ. Однако Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ запросы Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ с Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, минуя Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² 1Π‘, поэтому Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹ ΠΈ события ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ ΡΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ запроса Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ строк с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ количСством ΠΈΠ· рСгистра свСдСний ΠΈΠ»ΠΈ Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части:

Запрос = Новый Запрос;

Запрос.ВСкст =

"Π£Π”ΠΠ›Π˜Π’Π¬ Π˜Π—

| Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.РСализацияВоваровУслуг.Π’ΠΎΠ²Π°Ρ€Ρ‹ КАК Π’Π°Π±Π§Π°ΡΡ‚ΡŒ

|Π“Π”Π•

| Π’Π°Π±Π§Π°ΡΡ‚ΡŒ.Бсылка = &Бсылка

| И Π’Π°Π±Π§Π°ΡΡ‚ΡŒ.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ = 0";

Запрос.Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€("Бсылка", БсылкаНаДокумСнт);

Запрос.Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ();

ИспользованиС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… запросов, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹ΡˆΠ΅, Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ SQL-ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΉ ΠΈ позволяСт ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ»Π°Π½ выполнСния запроса, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ систСмы. Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… Π² экосистСмС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅.

Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² удалСния

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

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ использования ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ
Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°) ΠœΠΎΠ΄ΡƒΠ»ΡŒ Ρ„ΠΎΡ€ΠΌΡ‹, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° БрСдняя Высокая (ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Ρ‚ΠΈΠΏΠΎΠ²)
ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ() Полная очистка списка Высокая Высокая
Π¦ΠΈΠΊΠ» с индСксом Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ Π² ΠΊΠΎΠ΄Π΅ Низкая (ΠΏΡ€ΠΈ большом ΠΊΠΎΠ»-Π²Π΅) БрСдняя (риск ошибок индСкса)
Запрос Π£Π”ΠΠ›Π˜Π’Π¬ Π˜Π— Массовая ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, сСрвСр ΠžΡ‡Π΅Π½ΡŒ высокая Низкая (ΠΎΠ±Ρ…ΠΎΠ΄ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°)

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π΅ сущСствуСт. Для ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π° для Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΠΎ Π½ΠΎΡ‡Π½ΠΎΠΉ очисткС Π΄Π°Π½Π½Ρ‹Ρ… Π»ΡƒΡ‡ΡˆΠ΅ всСго подходят запросы. Π’Ρ‹Π±ΠΎΡ€ зависит ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ.

πŸ’‘

Для ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ удалСния Π² Ρ„ΠΎΡ€ΠΌΠ΅ всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π£Π΄Π°Π»ΠΈΡ‚ΡŒ() с ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° строки, Π° для массовой очистки Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… β€” запросы языка 1Π‘.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ удалСния Π² Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚Π½Ρ‹Ρ… заданиях ΠΈ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… процСссах

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° Π² Ρ„ΠΎΠ½Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚Π½Ρ‹Ρ… заданиях ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ… ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ понятия "Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки" ΠΈΠ»ΠΈ "Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ элСмСнта Ρ„ΠΎΡ€ΠΌΡ‹". Π—Π΄Π΅ΡΡŒ вся Ρ€Π°Π±ΠΎΡ‚Π° строится Π½Π° прямой манипуляции ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

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

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ Π²Π°ΠΆΠ½Ρ‹ΠΌ аспСктом являСтся Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ΠŸΡ€ΠΈ автоматичСском ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚ процСсса, поэтому Π² случаС ошибки ΠΈΠ»ΠΈ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° слоТно ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ. Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° протоколирования ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… строк (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, запись Π² ΠΆΡƒΡ€Π½Π°Π» рСгистрации) являСтся Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ Π°ΡƒΠ΄ΠΈΡ‚Π° дСйствий систСмы.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ частями ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘. ВсСгда провСряйтС синтаксис ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π² синтакс-ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ΅ вашСй ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСрсии ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΡƒΡŽ ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚Π°Ρ†ΠΈΡŽ.

НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… β€” это нСобратимая опСрация (Ссли Π½Π΅ настроСно Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ история ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚Π½Ρ‹Ρ… заданиях часто ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ мягкоС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅: вмСсто физичСского ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ строки ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π΅ΠΉ присваиваСтся ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ ΠŸΠΎΠΌΠ΅Ρ‚ΠΊΠ°Π£Π΄Π°Π»Π΅Π½ΠΈΡ = Π˜ΡΡ‚ΠΈΠ½Π°. Π­Ρ‚ΠΎ позволяСт ΠΏΡ€ΠΈ нСобходимости Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ сохраняСт ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°.

β˜‘οΈ ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ массовому ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ

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

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

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ строку, Ссли я знаю Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Ρ‘ Π½ΠΎΠΌΠ΅Ρ€ (индСкс)?

Для удалСния строки ΠΏΠΎ индСксу Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ сначала ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ строки ΠΈΠ· ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ этот индСкс, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅Ρ‘ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ удалСния. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π‘Ρ‚Ρ€ΠΎΠΊΠ° = Π’ΠΎΠ²Π°Ρ€Ρ‹[ИндСкс]; Π’ΠΎΠ²Π°Ρ€Ρ‹.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°);. ΠŸΡ€ΡΠΌΠΎΠ΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ индСксу Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСдоступно ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка "Вранзакция ΡƒΠΆΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π°"?

Π­Ρ‚Π° ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ записи Π΄Π°Π½Π½Ρ‹Ρ… (ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ строки) Π²Π½ΡƒΡ‚Ρ€ΠΈ ΡƒΠΆΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Π½ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΈΠ»ΠΈ Π½Π°Ρ‡Π°Π»Π° Π½ΠΎΠ²ΠΎΠΉ. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ° ΠΠ°Ρ‡Π°Ρ‚ΡŒΠ’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ().. Π±Π΅Π· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ, ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ€Π΅ΠΆΠΈΠΌ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

МоТно Π»ΠΈ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ строку Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части?

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

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π£Π΄Π°Π»ΠΈΡ‚ΡŒ() Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ†ΠΈΠΊΠ»Π΅ "Для КаТдого"?

Π¦ΠΈΠΊΠ» "Для КаТдого" ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ (ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€) для прохоТдСния ΠΏΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. ИзмСнСниС структуры ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ (ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнта) Π² Ρ‚Π΅Π»Π΅ Ρ†ΠΈΠΊΠ»Π° сбиваСт этот ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ пропуску элСмСнтов ΠΈΠ»ΠΈ ошибкС выполнСния. Для удалСния Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ счСтчик индСксов ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π±ΠΎΡ€ Π² список.

Как ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ всю Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ дСйствиСм?

Π‘Π°ΠΌΡ‹ΠΉ быстрый ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ способ β€” Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ() Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚Π°Π±Π»ΠΈΡ‡Π½ΠΎΠΉ части. НапримСр: Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠžΠ±ΡŠΠ΅ΠΊΡ‚.Π’ΠΎΠ²Π°Ρ€Ρ‹.ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ();. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ удаляСт всС строки ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΈ являСтся ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с цикличСским ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.