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

ΠœΡƒΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, состояниС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ послС ΠΈΡ… создания Π±Π΅Π· нСобходимости создания Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ Π² памяти. Когда Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Ρ‚Π°ΠΊΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, Π»ΡŽΠ±Ρ‹Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ происходят Β«Π½Π° мСстС», Ρ‡Ρ‚ΠΎ влияСт Π½Π° всСх Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅Π² ссылки Π½Π° этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ этого ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΡƒΠ»ΠΎΠ²ΠΈΠΌΡ‹ΠΌ ошибкам Π»ΠΎΠ³ΠΈΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎ мСняСт Π΄Π°Π½Π½Ρ‹Π΅ Π² ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅.

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

Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ отличия измСняСмых ΠΈ нСизмСняСмых Ρ‚ΠΈΠΏΠΎΠ²

Π’ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘ всС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… дСлятся Π½Π° Π΄Π²Π΅ большиС Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ повСдСния ΠΏΡ€ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. К ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅ относятся ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Число, Π‘Ρ‚Ρ€ΠΎΠΊΠ°, Π”Π°Ρ‚Π° ΠΈ Π‘ΡƒΠ»Π΅Π²ΠΎ. Π­Ρ‚ΠΈ значСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΠΌΠΌΡƒΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ любая опСрация, которая Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ выглядит ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ значСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, конкатСнация строк ΠΈΠ»ΠΈ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ числа), Π½Π° самом Π΄Π΅Π»Π΅ создаСт ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² памяти, Π° староС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ остаСтся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π° Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ ссылки.

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

Рассмотрим простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ со строкой, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ. Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π² 1Π‘ нСизмСняСма. Когда Π²Ρ‹ выполняСтС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π‘Ρ‚Ρ€ΠΎΠΊΠ° = Π‘Ρ‚Ρ€ΠΎΠΊΠ° + "Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅", ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° выдСляСт Π½ΠΎΠ²Ρ‹ΠΉ Π±Π»ΠΎΠΊ памяти ΠΏΠΎΠ΄ Π½ΠΎΠ²ΡƒΡŽ строку. Бтарая строка Π½ΠΈΠΊΡƒΠ΄Π° Π½Π΅ дСваСтся ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ, Π½ΠΎ пСрСмСнная Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ адрСс. Π’ случаС с массивом опСрация Массив.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚) мСняСт Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ структуру ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½Π΅ создавая Π½ΠΎΠ²Ρ‹ΠΉ массив.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡƒΡ‚Π°Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΈ ΠΏΠΎ ссылкС β€” самая частая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° ошибок ΠΏΡ€ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π΅ ΠΊΠΎΠ΄Π°. ВсСгда провСряйтС Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

πŸ“Š Π‘ ΠΊΠ°ΠΊΠΈΠΌ Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΏΠΎ ссылкС?
Массив
Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°
Π’Π°Π±Π»ΠΈΡ†Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
БоотвСтствиС

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ссылок ΠΈ копирования Π² памяти

Когда пСрСмСнная ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΡƒΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π² Π½Π΅ΠΉ сохраняСтся Π½Π΅ сам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π° ссылка Π½Π° ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, Π³Π΄Π΅ этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ resides. Π­Ρ‚ΠΎ критичСски Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ для понимания повСдСния систСмы. Если Π²Ρ‹ создадитС Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ присвоитС Π΅ΠΉ ΠΏΠ΅Ρ€Π²ΡƒΡŽ (ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ2 = ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ1), ΠΎΠ±Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ физичСский ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти.

ИзмСнСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ΄Π½Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ отразится ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‚ΠΎΡ€ΡƒΡŽ. Π­Ρ‚ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠ°Ρ€Π΄ΠΈΠ½Π°Π»ΡŒΠ½ΠΎ отличаСтся ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с числами ΠΈΠ»ΠΈ Π΄Π°Ρ‚Π°ΠΌΠΈ, Π³Π΄Π΅ присваиваниС создаСт ΠΏΠΎΠ»Π½ΡƒΡŽ копию значСния. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ часто Π·Π°Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ± этом ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π’Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ситуациям, ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Ρ‹Π΅ Β«ΠΏΠ»Ρ‹Π²ΡƒΡ‚Β» Π² нСпрСдсказуСмых мСстах ΠΊΠΎΠ΄Π°.

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

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ() для ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, Ссли ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΡ… Π²ΠΎ внСшниС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ»ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π² рСгистры, Π³Π΄Π΅ исходный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ ΠΏΠΎΠ·ΠΆΠ΅.

Рассмотрим ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ с Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ структурами. ΠŸΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠ΅ ΠΊΠΎΠΏΠΈΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Если Π²Π½ΡƒΡ‚Ρ€ΠΈ вашСй структуры Π»Π΅ΠΆΠΈΡ‚ массив, Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ структуры ссылка Π½Π° этот массив Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ скопирована, Π° Π½Π΅ сам массив. Π­Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ особой Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ слоТных иСрархичСских Π΄Π°Π½Π½Ρ‹Ρ….

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΡƒΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² 1Π‘

Бписок измСняСмых Ρ‚ΠΈΠΏΠΎΠ² Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ достаточно ΡˆΠΈΡ€ΠΎΠΊ, ΠΈ Π·Π½Π°Π½ΠΈΠ΅ ΠΈΡ… особСнностСй позволяСт ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ основных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… базируСтся Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ состояния ΠΏΠΎ ссылкС:

  • πŸ“¦ Массив β€” упорядочСнная коллСкция Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ динамичСски ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ.
  • πŸ—οΈ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° β€” коллСкция ΠΏΠ°Ρ€ Β«ΠšΠ»ΡŽΡ‡-Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β», Π³Π΄Π΅ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ строка.
  • πŸ”— БоотвСтствиС β€” Π°Π½Π°Π»ΠΎΠ³ структуры, Π½ΠΎ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ использования Π»ΡŽΠ±Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π² качСствС ΠΊΠ»ΡŽΡ‡Π°.
  • πŸ“Š Π’Π°Π±Π»ΠΈΡ†Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ β€” ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт для Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ хранСния Π½Π°Π±ΠΎΡ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… с ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ ΠΈ строками.
  • πŸ“ Π”Π΅Ρ€Π΅Π²ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ β€” иСрархичСская структура Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π°Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ строк.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих Ρ‚ΠΈΠΏΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ‚ свой Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. НапримСр, Ρƒ массива это Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ, Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, Π£Π΄Π°Π»ΠΈΡ‚ΡŒ. Π£ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ β€” НоваяБтрока, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈ сортировки. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ² этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² мСняСт сам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π° Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Π³ΠΎ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ.

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

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с БоотвСтствиСм

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

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ измСнСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ Ρ‚Π΅ΠΎΡ€ΠΈΡŽ, рассмотрим ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ сцСнарий Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ создали Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, Π·Π°ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Π΅Ρ‘ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Если Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½ΠΎΠ²ΡƒΡŽ строку, эта строка появится ΠΈ Π² исходной Ρ‚Π°Π±Π»ΠΈΡ†Π΅ послС Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒΠ’Π°Π±Π»ΠΈΡ†Ρƒ(Π’Π—)

// ИзмСнСниС происходит "Π½Π° мСстС"

НоваяБтрока = Π’Π—.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ();

НоваяБтрока.Π‘ΡƒΠΌΠΌΠ° = 100;

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

// Основной код

Π’Π°Π±Π»ΠΈΡ†Π° = Новый Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ;

// ... Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ...

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒΠ’Π°Π±Π»ΠΈΡ†Ρƒ(Π’Π°Π±Π»ΠΈΡ†Π°);

// Π’Π°Π±Π»ΠΈΡ†Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ содСрТит Π½ΠΎΠ²ΡƒΡŽ строку!

Π”Ρ€ΡƒΠ³ΠΎΠΉ распространСнный кСйс β€” Ρ€Π°Π±ΠΎΡ‚Π° со Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Часто Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ структуру, ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ Π΅Ρ‘ Π² нСсколько ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² дописываСт Ρ‚ΡƒΠ΄Π° свои Π΄Π°Π½Π½Ρ‹Π΅. Π­Ρ‚ΠΎ допустимый ΠΈ эффСктивный ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½, Π½ΠΎ ΠΎΠ½ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ понимания Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ структура Π΅Π΄ΠΈΠ½Π° для всСх Π²Ρ‹Π·ΠΎΠ²ΠΎΠ².

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

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² массив ΠΈΠ»ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π΅ Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚ΡƒΠ΄Π° сохраняСтся ссылка. Если Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ послС добавлСния, ΠΎΠ½ измСнится ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° бСзопасности Ρ€Π°Π±ΠΎΡ‚Ρ‹ с коллСкциями

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

Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° повСдСния Ρ‚ΠΈΠΏΠΎΠ²

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

Π₯арактСристика Π˜ΠΌΠΌΡƒΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹Π΅ (Число, Π‘Ρ‚Ρ€ΠΎΠΊΠ°) ΠœΡƒΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹Π΅ (Массив, Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°)
ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ По Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ (копия) По ссылкС (ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»)
ИзмСнСниС Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ НС влияСт Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π» ΠœΠ΅Π½ΡΠ΅Ρ‚ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»
ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ "ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅" Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ копию значСния ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ ссылку
ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Зависит ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π΄Π°Π½Π½Ρ‹Ρ… Высокая (пСрСдаСтся адрСс)
ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ явного копирования НС трСбуСтся ВрСбуСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ Π‘ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ()

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Ρ€Π°Π±ΠΎΡ‚Π° с ΠΌΡƒΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ часто ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ происходит физичСского копирования Π±Π°ΠΉΡ‚ΠΎΠ² Π² памяти. Однако эта ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ достигаСтся Ρ†Π΅Π½ΠΎΠΉ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΠΎΠΉ отвСтствСнности Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π·Π° Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ….

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

πŸ’‘

ΠœΡƒΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ позволяСт эффСктивно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с большими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· ссылки, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ дисциплины ΠΏΡ€ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ состояниСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ

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

Однако сущСствуСт обратная сторона ΠΌΠ΅Π΄Π°Π»ΠΈ β€” фрагмСнтация памяти ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° сборщика мусора. Если Π²Ρ‹ постоянно создаСтС Π½ΠΎΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ вмСсто ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ‚Π°ΠΌ, Π³Π΄Π΅ это допустимо, ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, создаСтС лишниС ΠΊΠΎΠΏΠΈΠΈ Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π½ΡƒΠΆΠ½Π° ссылка, Π²Ρ‹ Π½Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚Π΅ систСму. ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ простоС: Ссли ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½ΡƒΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ контСкстС β€” ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°ΠΉΡ‚Π΅ ссылку. Если Π½ΡƒΠΆΠ½Π° изоляция β€” Π΄Π΅Π»Π°ΠΉΡ‚Π΅ копию.

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

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

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

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

МоТно Π»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ строку ΠΌΡƒΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΠΉ Π² 1Π‘?

НСт, Ρ‚ΠΈΠΏ Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ 1Π‘ являСтся нСизмСняСмым (ΠΈΠΌΠΌΡƒΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌ). Π›ΡŽΠ±Π°Ρ опСрация ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½Ρ‹ символов создаСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ строки Π² памяти. Π­Ρ‚ΠΎ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ свойство Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ нСльзя ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ.

Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ массив Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ Π½Π΅ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ?

НичСго Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ с самим массивом. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠΎ ссылкС ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ лишь Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ измСнСния. Если Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹ Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ (Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ, Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΈ Ρ‚.Π΄.) ΠΈ Π½Π΅ присваиваСтС Π½ΠΎΠ²Ρ‹Π΅ значСния элСмСнтам, исходный массив останСтся Π² ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅.

Как быстро ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ структуру Π±Π΅Π· Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… массивов?

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

ВлияСт Π»ΠΈ ΠΌΡƒΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ запросов?

ΠΠ°ΠΏΡ€ΡΠΌΡƒΡŽ β€” Π½Π΅Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ запросы Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Π‘Π£Π‘Π”. Однако Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² запроса (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†) с использованиСм ΠΌΡƒΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² ΠΊΠΎΠ΄Π΅ 1Π‘ влияСт Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ Π² сСрвСр 1Π‘.

ЯвляСтся Π»ΠΈ РСгистрБвСдСний ΠΌΡƒΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ?

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ доступа ΠΊ рСгистрам свСдСний Π²Π΅Π΄ΡƒΡ‚ сСбя ΠΊΠ°ΠΊ ΠΌΡƒΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹Π΅ Π² контСкстС записи Π΄Π°Π½Π½Ρ‹Ρ…. Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ записи, мСняСтС Π΅Π³ΠΎ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ(). Но сам ΠΏΠΎ сСбС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ записи Π² памяти 1Π‘ подчиняСтся ΠΎΠ±Ρ‰ΠΈΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.