Skip to content
3 / 15

Блайсы: массив, Π΄Π»ΠΈΠ½Π°, Ρ‘ΠΌΠΊΠΎΡΡ‚ΡŒ ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ append ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΠΎΡ€Ρ‚ΠΈΡ‚ Ρ‡ΡƒΠΆΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅

Блайс β€” Π½Π΅ массив, Π° структура ΠΈΠ· Ρ‚Ρ€Ρ‘Ρ… ΠΏΠΎΠ»Π΅ΠΉ: ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° массив, Π΄Π»ΠΈΠ½Π° ΠΈ Ρ‘ΠΌΠΊΠΎΡΡ‚ΡŒ. Массив ΠΏΠΎΠ΄ Π½ΠΈΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΌ для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… слайсов, ΠΈ ΠΎΡ‚ΡΡŽΠ΄Π° всС ΡΡŽΡ€ΠΏΡ€ΠΈΠ·Ρ‹. append дописываСт Π² ΠΊΠΎΠ½Π΅Ρ†: Ссли ёмкости Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚, ΠΎΠ½ ΠΏΠΈΡˆΠ΅Ρ‚ Π² Ρ‚ΠΎΡ‚ ΠΆΠ΅ массив, ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ слайс, смотрящий Π½Π° Ρ‚Ρƒ ΠΆΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅; Ссли Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ β€” выдСляСтся Π½ΠΎΠ²Ρ‹ΠΉ массив, Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ, ΠΈ связь со старым тСряСтся. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄ Π²Π΅Π΄Ρ‘Ρ‚ сСбя ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ Π² зависимости ΠΎΡ‚ ёмкости. Π’Ρ‚ΠΎΡ€ΠΎΠΉ источник ошибок β€” срСзаниС: s[1:3] сохраняСт Ρ‘ΠΌΠΊΠΎΡΡ‚ΡŒ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° исходного массива, поэтому ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ append Π·Π°Ρ‚Ρ€Ρ‘Ρ‚ сосСдниС элСмСнты; лСчится Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΠΌ индСксом s[1:3:3], ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ Ρ‘ΠΌΠΊΠΎΡΡ‚ΡŒ. Π’Ρ€Π΅Ρ‚ΠΈΠΉ β€” ΡƒΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ памяти: срСз ΠΈΠ· ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ³ΠΎ слайса Π½Π΅ Π΄Π°Ρ‘Ρ‚ сборщику ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ вСсь массив, ΠΈ Π½ΡƒΠΆΠ΅Π½ явный slices.Clone.

Блайсы: массив, Π΄Π»ΠΈΠ½Π°, Ρ‘ΠΌΠΊΠΎΡΡ‚ΡŒ ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ append ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΠΎΡ€Ρ‚ΠΈΡ‚ Ρ‡ΡƒΠΆΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ | JScriptiser