Михаил Непряхин: Так всем. Привет напишите
Михаил Непряхин: срочно видно
Михаил Непряхин: так Что Там Получилось александра найти,
Михаил Непряхин: четыре Универ
Михаил Непряхин: ну
Михаил Непряхин: так
Михаил Непряхин: кто-нибудь решал задачки Ммм которая
Михаил Непряхин: а в прошлый, Раз, вот добавим к лекции, вот добавить задачки
Михаил Непряхин: Есть. Кто нибудь кто решал
Михаил Непряхин: вот эти вот по указателям
Михаил Непряхин: дмитрия так
Михаил Непряхин: а ты хорошо
Михаил Непряхин: значит смотрите это Задачи Которые Реально могут Попасться на собеседник
Михаил Непряхин: конечно Сейчас это уже Редкость но Тем Не Менее может
Михаил Непряхин: Топ. Один задача это наслайсы вот сегодняшняя тема сегодня будем прославиться разговаривать всю лекцию
Михаил Непряхин: но но указатели, в теории тоже могут спросить вообще как бы чем чувствуют как бы чем слабее вы чем вы как бы
Михаил Непряхин: ну чем больше Указывать на То что вы новичок тем, больше вас грузят Вот этими какими-то задачами
Михаил Непряхин: поэтому важно когда вы их решаете
Михаил Непряхин: проговаривать и Вот я просто буду показывать например, как читать код
Михаил Непряхин: плюс это в принципе указывают на соцкий вы потому что даже если, вы хороший разработчик но еще нужны словски вы то есть грубо говоря как вы общаетесь
Михаил Непряхин: а насколько вы вообще переговоры способны как с Вами как с коллегой вот комфортно некомфортно работать вот и когда дают код
Михаил Непряхин: то есть как бы грубо говоря там на секции
Михаил Непряхин: а на техническом собеседовании вы немного знакомитесь
Михаил Непряхин: и буквально через пять минут вам дают показывают код обычно это в каком-нибудь блокноте который шарится ну есть там разные варианты где можно показать код и Говорят что выведет код То есть как бы классическая задача вы ничего не дописываете, просто вы должны сказать что выведет
Михаил Непряхин: и иногда что нужно исправить чтобы вылилось то что ожидается
Михаил Непряхин: вот и
Михаил Непряхин: александр похоже так. И не зашел да?
Михаил Непряхин: И и
Михаил Непряхин: значит как как читать такие задачи ну вы говорите есть вариант. Когда вы просто допустим смотрите молчите
Михаил Непряхин: и говорите чего выведет
Михаил Непряхин: но это скучно неинтересно и от вас все таки ну? Вот лучше сильно лучше это добавить вам очков если вы будете читать код потому. Что
Михаил Непряхин: вы задачу можете даже решить неправильно
Михаил Непряхин: но если у вас будет Правильный ход мыслей если вы будете Размышлять как гошник то
Михаил Непряхин: ну. Практически сто процентов что вам скажут ну. Ничего страшного как бы пойдут, дальше
Михаил Непряхин: потому что эти задачи по сути они призваны Отфильтровать негошников здесь насбейся задача у интервьюера по Сути
Михаил Непряхин: вот понять, свой вы или Нет то есть такая тест на свой чужой то есть вы как бы залетные тут случайно попали там нарисовали резюме или вы настоящий гошник
Михаил Непряхин: и По большому счету если он понимает что вы Настоящий гошник
Михаил Непряхин: обычно просто на этом и
Михаил Непряхин: до тех пор пока вы не завалитесь или там не обнаружите, себя
Михаил Непряхин: вот значит как читать такие сдачу вы говорите
Михаил Непряхин: значит Мы Объявляем. Переменную
Михаил Непряхин: Пять
Михаил Непряхин: Помещаем. Ее в ви
Михаил Непряхин: значит Берем. От нее указатель
Михаил Непряхин: и вот пью у нас Сейчас указатель Кстати сделал шрифт спецсиг
Михаил Непряхин: да значит Впи У нас указатель
Михаил Непряхин: дальше Мы
Михаил Непряхин: развеи новым. Указатель
Михаил Непряхин: и высоты Аут выводим
Михаил Непряхин: что-то ну Что Мы тут выводим ну очевидно Что Мы тут, выводим Пять то есть высада вот Мы этуводим Пять
Михаил Непряхин: Дальше У нас функция Мы передаем Наш, указатель функцию
Михаил Непряхин: функции.
Михаил Непряхин: Функция принимает
Михаил Непряхин: а аргумент
Михаил Непряхин: указатель По ну Собственно ин-то указатель то есть вот мы его приняли
Михаил Непряхин: мы с Ним сразу ничего Не делаем мы объявляем другую перемену ви
Михаил Непряхин: говорю что она равнотрем
Михаил Непряхин: и от Этой перемены ви берем указатель
Михаил Непряхин: он совпадает
Михаил Непряхин: по имени с аргументам которые мы Принимаем и здесь Нет присвоения даты если мы его Переопределяем он у нас уже тут какой-то пришел мы его перезаписываем
Михаил Непряхин: и дальше мы выходим из функции, функции, ничего не возвращает и дальше мы разименовываем этот показатель и
Михаил Непряхин: аа какое здесь было значение и вот как бы здесь вопрос
Михаил Непряхин: поменяет ли эта функция Наш указатель который Мы в нее передали
Михаил Непряхин: ну. Давайте то не, решал ваше, предположение то Есть поменяется значение то, есть вот здесь мы гарантированно выводим пять то есть как бы я думаю тут сомнений Нет никого но что мы выведем здесь
Михаил Непряхин: пять или три
Михаил Непряхин: Давайте значит Сделаем Ставки Играем в Игру
Михаил Непряхин: пять пять пять
Михаил Непряхин: Давайте лучше. Чего-нибудь Предположить Даже Если Не знаете нас? Что-нибудь Предположите
Михаил Непряхин: А руки запомнится.
Михаил Непряхин: Так Ну смотрите в чем здесь подвох вы видится пять да значит почему пять
Михаил Непряхин: вот в пять пять
Михаил Непряхин: почему
Михаил Непряхин: потому, что мы вот что Мы получили здесь
Михаил Непряхин: Мы здесь получили
Михаил Непряхин: адрес памяти адрес памяти Это просто число да У нас память как бы У процесса Она виртуальна Это не физическая, память это логическая, память и вот в Этой логической памяти мы получили адрес
Михаил Непряхин: то есть указатель на этот адрес
Михаил Непряхин: и мы просто взяли и переопределили его то есть здесь был Один. Адрес
Михаил Непряхин: а мы завели другую перемену взяли от нее указатель и Сказали Что, теперь. Этот указатель рамен другому числу,
Михаил Непряхин: Мы здесь ничего не разменовывали
Михаил Непряхин: как Помните для того чтобы поменять значение надо Разименовать
Михаил Непряхин: вот если, бы Мы разменовали
Михаил Непряхин: сделали вот Так да То вот в Этом случае Оно бы, там бы, Поменялось
Михаил Непряхин: То есть если Нет Разименования
Михаил Непряхин: Это значит Нет Перехода По указателю
Михаил Непряхин: и это значит Что, здесь Мы просто поменяли ну было Там какое То число
Михаил Непряхин: так вот
Михаил Непряхин: указатель это По Сути ин Условному адрес, памяти да какое-то число мы его поменяли и все мы ничего больше не сделали то есть на самом деле это вот единственный вариант таких задач, подвохом про Указатели
Михаил Непряхин: и просто вариации То Есть Какие Еще Есть вариации этого дела
Михаил Непряхин: так Что У нас здесь ну Давайте дальше Смотрим Да значит переменную Помещаем структуру У нас есть структура да что за структура Заперся на нее на поле нэйм стринга
Михаил Непряхин: значит мы политераву
Михаил Непряхин: Объявляем Эту переменную сразу берем от нее указатель
Михаил Непряхин: Перси у нас указатель на инициативную структуру Персон
Михаил Непряхин: с полем на им
Михаил Непряхин: дальше мы выводим здесь полено им ну очевидно что здесь выведется боб тут как бы, тоже сомнений ни у кого, нет дальше Мы пытаемся изменить имя передаем по указателю нашу структуру
Михаил Непряхин: а
Михаил Непряхин: заводим
Михаил Непряхин: и Опять как бы инициализируем еще одну структуру
Михаил Непряхин: и помещаем в этот указатель
Михаил Непряхин: ну в общем та же самая история понятное дело Что Это Не сработает потому Что нету звездочки нету разименования Поэтому здесь Тоже будет боб и любов два раза
Михаил Непряхин: То есть как бы
Михаил Непряхин: точно такой же случай Как Симптом Только Структура
Михаил Непряхин: в случае структуры если Мы хотим, Там поменять Ну да нам в Любом случае нужно разомирование сделать
Михаил Непряхин: и и
Михаил Непряхин: то есть опять, же для того чтобы перейти по указателю что, там поменять надо Разменовать без разменования так он работать не Будет
Михаил Непряхин: короче таш сам Обсудит сдачу просто чуть-чуть другой вариант
Михаил Непряхин: Так кто деточка Персон
Михаил Непряхин: строго говоря надо ногу взять писать и Так
Михаил Непряхин: да
Михаил Непряхин: особенно, здесь такая Что, когда мы работаем
Михаил Непряхин: ну здесь получается
Михаил Непряхин: а имеется в виду когда поле печатаем я понял, типа у нас Же
Михаил Непряхин: мы взяли указатель У нас указатель а Потом Мы
Михаил Непряхин: ну Нет как бы, здесь Даже обращение к полю
Михаил Непряхин: так м Сейчас он Разменовывает Что То вроде
Михаил Непряхин: А такого что ли синтаксис да то Есть короче говоря должно вот быть как бы вот Так вот
Михаил Непряхин: но Это Же Некрасиво
Михаил Непряхин: и Вгу подумали Что вот и с методами такая история и с Полями
Михаил Непряхин: Что Это Некрасиво
Михаил Непряхин: и ну Допустим. Какой-то перемены и Мы с кем-нибудь Сквозь а Это Некрасиво что Да У нас Там указатель Чтобы Достать оттуда Поля надо его Разименовать и Достать оттуда Поля Но для того Чтобы ну так как это очень часто бывает Мы очень часто имеем дело со структурой по указателю
Михаил Непряхин: вот это дело опускается и вот это то Же самое и Поэтому хоть У нас Тут указатель хоть Не указатель Вот Мы Всегда работаем в Атаку
Михаил Непряхин: да
Михаил Непряхин: хорошее Замечание,
Михаил Непряхин: Так дальше Что решить какие У нас варианты
Михаил Непряхин: так здесь смотрите вот Поэтому кейса вопросов Нет Это одно, и То же да вот здесь вот Есть У кого-то Еще Непонимание какое-то тепло как это работает
Михаил Непряхин: если, есть прямо, вот Давайте вопрос можете Хоть, написать Хоть, голосом задать и Я Еще объясню ничего страшного
Михаил Непряхин: ни у кого, вопросов не возникает
Михаил Непряхин: хорошо так что. У нас существует случай и
Михаил Непряхин: Пойдем в переменную берем От Этой переменный указатель помещаем в п а этот указатель опять берем указатель У нас уже двойный указатель значит если Мы
Михаил Непряхин: а
Михаил Непряхин: Так
Михаил Непряхин: помещаем Тройку разименовым указатель пи а ну да вот это размино
Михаил Непряхин: то есть мы здесь э
Михаил Непряхин: меняем
Михаил Непряхин: получается мы разименовываем пи
Михаил Непряхин: прыгаем ва и призываем на тройку
Михаил Непряхин: и полезно Всегда когда размышляете тоже комментарии писать обычно вам дают возможность и
Михаил Непряхин: а дальше разименоваем Би
Михаил Непряхин: два раза
Михаил Непряхин: то есть Один. Раз Мы размируем Би мы попадем в пи еще Раз, разменуем пи попадем вей то есть мы опять же здесь достукиваемся до эй
Михаил Непряхин: и теперь уже и меняем на пять
Михаил Непряхин: а дальше что мы здесь делаем
Михаил Непряхин: мы говорим так четыре плюс разименований Пи
Михаил Непряхин: да ну эй теперь. Стало тут надо даже не Так надо было писать короче эй теперь Стало пять
Михаил Непряхин: Так четыре
Михаил Непряхин: эй
Михаил Непряхин: кэмерон эй
Михаил Непряхин: давайте
Михаил Непряхин: ты Здесь вообще Как бы не очень удобно
Михаил Непряхин: Так Мы берем эй ты У нас Пять
Михаил Непряхин: и прибавляем к ней четыре плюс Разименовываем пину пира заменуем это Пять и в разы новом виде Тоже, Пять ну короче говоря чего Тут девятнадцать получается да
Михаил Непряхин: Все это прибавить
Михаил Непряхин: девятнадцать
Михаил Непряхин: на самом деле если, бы, Тут чего-нибудь вот так вот было гошка бы Не до вас. Компилировать Поэтому как бы тут могут еще
Михаил Непряхин: с подвохом сделать Задачку потому что это Виды ей подсвечивают а в блокноте оно может не подсвечиваться. Вы смотрите би. Мы разглядываем би. И помещаем туда пять смотрим где би. Вотбби разменоем Один, Раз, и Имеем дело с указателем и выдадут указатель присываемым пять Мы Понимаем Что Мы это сделать Не можем потому Что
Михаил Непряхин: ну Мы
Михаил Непряхин: как бы это целое число
Михаил Непряхин: а указатель э. Должен быть значением какой Там
Михаил Непряхин: да тут можно происходит на самом. Деле ему Другой указатель
Михаил Непряхин: Аа ну. Другая История Там можете посмотреть Он Там в шестнадцать Личной системе числения То есть, Теоретически его здесь можно поменять если вот У вас есть, какой-то адрес
Михаил Непряхин: То вы можете просто его заменить и как бы ну. Это надо Иметь какой-то другой валидный указатель
Михаил Непряхин: вот ну. То есть Мы понимаем что один Раз, мы не можем тут разменовать
Михаил Непряхин: надо развивать два раза
Михаил Непряхин: и так что здесь шон
Михаил Непряхин: берем
Михаил Непряхин: значит делам вэлью говорим что этот этого любовь им тридцать два записывал он сотню и от Этой перемены берем указать весь наш указатель размя новым указатель что получаем ну логично что Здесь Мы получаем Сто То есть Это. Выведет. Сто
Михаил Непряхин: Дальше
Михаил Непряхин: А выводим значение Указателя Ну Здесь увидят какой-то Там адрес
Михаил Непряхин: А
Михаил Непряхин: Давайте Посмотрим
Михаил Непряхин: как он как он там выглядит завтра-то ну вот он Так выглядит
Михаил Непряхин: вот ну грубо говоря
Михаил Непряхин: там Сиксон
Михаил Непряхин: вот ноликс я Не, помню это с нуля начинается тут не работаешь с этими одно то
Михаил Непряхин: все бессину растут си есть Да это вроде так шендерович эта система исчисления записываться то есть Тут могут растут от Нуля до Девяти и потом буквой и беседе иф
Михаил Непряхин: нудадоров
Михаил Непряхин: вот
Михаил Непряхин: То есть он не дает записать в Десятилетчной системе но если б Мы их шестнадцатилетней пытались производить Он в пример прошлой Новодеет
Михаил Непряхин: Попробуем Так разменовать и говорим что Он тут
Михаил Непряхин: не Там слово напрямую Не Дает То Есть Это все равно Защита типа Это же невалидный Указатель если Оно Так нельзя
Михаил Непряхин: Нет короче Тут и решка Сразу. Защищает ну в смысле Не скомпелируется Она
Михаил Непряхин: какая ошибка Будет к императору Не Так интересно
Михаил Непряхин: кэнно йоссентайпет индконстант
Михаил Непряхин: а ну да потому что это типа неуказательно Инд
Михаил Непряхин: ну
Михаил Непряхин: короче тут Нету каких-то хаков. Тут неси то как бы арифметика указателя так Не работает
Михаил Непряхин: так Им
Михаил Непряхин: Не Запускаем какую функцию про процесс
Михаил Непряхин: передаю вам туда этот показатель
Михаил Непряхин: темп Заводим, переменную а им тридцать два Сразу же присылаем в нее Двести
Михаил Непряхин: разименоваем темп ой еще тут уже интересно разминовываем темп
Михаил Непряхин: и это значит что мы значение туда в элью Реально запишем
Михаил Непряхин: и это значит что здесь у нас Мы Разменуем
Михаил Непряхин: поинтер безжибот двести
Михаил Непряхин: ну а Там
Михаил Непряхин: указать Альбом другой То есть смысл в том Что тут будет какой То какой То указатель а здесь Он будет другой
Михаил Непряхин: а Нет я туплю указатель Один, и тот же
Михаил Непряхин: Мы же тут уэлью Присвоили. Да та один и тот же указатель Окей ну как же ничего Не поменялось Мы поменяли значение указателя
Михаил Непряхин: вот
Михаил Непряхин: короче я там сделали позиторий
Михаил Непряхин: чуть позже где соберем вот эти вот задачки
Михаил Непряхин: Которые э типовые на собесах ну там в основном свайсы гурутинные каналы самое главное там ютокс и будет группа вот эта тема
Михаил Непряхин: вот но там будет вот несколько Еще задач вот но по интернету эти четыре сдачу будут
Михаил Непряхин: на
Михаил Непряхин: ну там на дифферы Еще что-нибудь то есть и
Михаил Непряхин: а как бы
Михаил Непряхин: это в жизни Не используется в поде вы такого кода никогда Не увидите это чисто вот такие задачки с подвохом
Михаил Непряхин: вот Поэтому освежить память перед обесом как Будто оно сам металл
Михаил Непряхин: а потому парываться, прямо, досконально там можно Нет вот на Свайсях да на Свайсях надо упороться а на Указателях главное понимать как Они Не примерно устроены
Михаил Непряхин: аа Так юинд
Михаил Непряхин: Нет Нет ну я Бы сказал вообще Не спрашивают но если, Вы где То проговоритесь как нибудь глупо
Михаил Непряхин: То ну, это будет бросать на вас тень
Михаил Непряхин: вот если, сами что-нибудь где-нибудь Не проговоритесь То в Принципе ничего такого Не спрашивают
Михаил Непряхин: могут Там про Мюток спросить максимум
Михаил Непряхин: вот
Михаил Непряхин: так ванна короче У нас сегодня лекция посвящена с майсом
Михаил Непряхин: и вот слайсы это наверное вообще
Михаил Непряхин: наверное все-таки самая важная тема курса потому что если вы не решаете на собеседник задачу у нас вальсы не отвечайте вот на Вопросы, вот эти, вот по задачу
Михаил Непряхин: то вы дальше не проходите
Михаил Непряхин: ну и в целом по жизни слайсы это самая. Популярная структура с которой Мы работаем там Раз в десять популярнее чем кошмапы
Михаил Непряхин: и ну понятно что там на первом месте это инты с Вайсой булы уинты старинки и булы но вот после этого после простых типов
Михаил Непряхин: сразу идет слайс
Михаил Непряхин: а с массивом почти никогда дело, не имеем то есть если У нас какая-то коллекция то этот Год ссылается
Михаил Непряхин: и очень Редко. Хашмапа
Михаил Непряхин: а в динамических языках весьма повстречаться Очень часто Но здесь когда Мы как Бы Понимаем внутреннее устройство Мы Понимаем насколько легко веснее все-таки свалится, Поэтому Мы Работаем с Асфальтом
Михаил Непряхин: Я и
Михаил Непряхин: значит Э
Михаил Непряхин: Твоя Ста Штука
Михаил Непряхин: которую Проще учить через Понимание внутреннего устройства
Михаил Непряхин: потому Что практически невозможно? Запомнить весь арсенал весь. Ассортимент возможностей
Михаил Непряхин: и Поведение
Михаил Непряхин: без понимания того как он Устроено Внутри
Михаил Непряхин: а устроена Но на чертовски просто
Михаил Непряхин: noise
Михаил Непряхин: значит свалится У нас Давайте опять. Нарисуем стек и кучу
Михаил Непряхин: свадьба московский указатель
Михаил Непряхин: значит
Михаил Непряхин: это
Михаил Непряхин: поинтер
Михаил Непряхин: на массив
Михаил Непряхин: то есть массив у нас в памяти представлен как просто подряд идущая память Поэтому мы с ней можем легко работать ну мы допустим у нас массив ментов
Михаил Непряхин: допустим ментов тридцать Два
Михаил Непряхин: ну и соответственно мы
Михаил Непряхин: можем очень легко перемещаться по слайсу просто сдвигаясь, на
Михаил Непряхин: и на тридцать Два бита
Михаил Непряхин: а умножить на
Михаил Непряхин: ячейку которую мы Хотим? Прыгнуть Хотим? Мы на вторую, прыгнуть но вот как бы мы понимаем как получить, ее адрес, то есть как бы сильная сторона массива в том что у нас очень
Михаил Непряхин: Быстро чтение
Михаил Непряхин: быстрая запись в Конец ну если место Позволяет
Михаил Непряхин: но дорогое дорогой перебор Потому что ну тут как бы это Не кошма тут надо Все перебирать и дорогое Удаление То есть тут чтобы что-то удалить ну Вот это надо Все Сдвинуть Вот Сюда
Михаил Непряхин: Так и
Михаил Непряхин: ну с Массивами Мы чаще всего работаем и Со Свайсами и
Михаил Непряхин: Мы чаще всего работаем как бы только на Чтение а если нужно что-то изменить То Мы просто сдаем еще Один. Свалит и куда-то переписываем вот Поэтому вот эта тема Что Мы Там чего-то удаляем ну?
Михаил Непряхин: Вы Не свать Соч Никогда ничего Не Удаляете
Михаил Непряхин: а Вот
Михаил Непряхин: значит Вот У нас массив как выглядит массив У нас тут какое-то Там число и человек допустим восемь янтов
Михаил Непряхин: а вот нас так выглядит тип
Михаил Непряхин: ну и вообще как бы если мы работаем спасибо на прямом местеке находится
Михаил Непряхин: и и
Михаил Непряхин: а что такое слайс
Михаил Непряхин: смотрите слайс это вью на массив
Михаил Непряхин: то Есть это просто Удобная Оболочка для работы с массивом
Михаил Непряхин: слайс
Михаил Непряхин: это вью
Михаил Непряхин: на рей на массив
Михаил Непряхин: То есть Под. Капотом у слайса массив
Михаил Непряхин: с Красивыми. Работать неудобно Поэтому принято Работать со Свайсами
Михаил Непряхин: слайс Это структура
Михаил Непряхин: значит Это структура из
Михаил Непряхин: из трех Полей это собственный указатель на этот самый массив это длина
Михаил Непряхин: этого
Михаил Непряхин: Массива Ну вернет длина слайса
Михаил Непряхин: и копайте емкость это вот как Раз, таки для вот это вот число вот Сколько вот здесь вот Есть допустим массив на восемь элементов откапазити будет восемь
Михаил Непряхин: а если, у нас Заполнен только один элемент нулевой
Михаил Непряхин: то длина будет один
Михаил Непряхин: если, мы добавляем еще один элемент вот сюда
Михаил Непряхин: ту длина будет
Михаил Непряхин: Два
Михаил Непряхин: а если, мы Сколько максимум мы можем добавить элементов
Михаил Непряхин: восемь то Есть вот когда У нас
Михаил Непряхин: а лен восемь копайте восемь У нас
Михаил Непряхин: значит что весь, этот
Михаил Непряхин: массив он заполнен
Михаил Непряхин: и чтобы туда сделать шумно добавить еще один элемент
Михаил Непряхин: ну. В норме бы если. Б мы работали с Массивом нам. Бы руками Пришлось
Михаил Непряхин: выделить дополнительную память ну, То есть Новый кусок памяти выделить
Михаил Непряхин: вот Это все туда перекопировать
Михаил Непряхин: и добавить Этот, Наш элемент руками Это Делать, долго и неудобно Поэтому нам специально вот Придумали вот Эту оболочку слайс это Вью для Удобного Работа, для уголовной работы с массивом
Михаил Непряхин: и когда мы хотим, слазь, добавить элемент автоматически под капотом выделяется новый кусок памяти ну обычно два икс примерно вот и туда мы здесь копаемся и обновляется
Михаил Непряхин: капасетис ноль шестнадцать
Михаил Непряхин: ну и все и теперь. Мы можем опять повышать лен добавили Новый элемент длина Массива Получилось девять
Михаил Непряхин: если Коде посмотреть как это выглядит
Михаил Непряхин: ну как это примерно выглядит Под капоттом
Михаил Непряхин: а где у меня, вот
Михаил Непряхин: значит ты
Михаил Непряхин: вот Мы инициализируем
Михаил Непряхин: ну здесь он нецензированный ну короче Мы заводим переменную со свайсом
Михаил Непряхин: и видим что. Тип с лайс записывается как квадратные скобочки ну массив вот так вот писал Всегда, внутри число и число является его типом
Михаил Непряхин: вот а здесь у нас ничего нет все там динамический массив
Михаил Непряхин: и он состоит из трендов.
Михаил Непряхин: В нашем случае Мы видим
Михаил Непряхин: но Реально
Михаил Непряхин: это структура То есть вот этот тип это Не просто Там какой-то Простой тип это Толстый указатель и вот он выглядит вот так вот
Михаил Непряхин: значит У Него Есть указательный массив ну Ансайф пойнтер ну то, Есть это короче обычно
Михаил Непряхин: Мы работаем с безопасными структурами но вот когда у нас дело заходит
Михаил Непряхин: про подкопотные структуры там очень много где используется ансейв ну это просто как бы уже
Михаил Непряхин: для ускорения аа чтобы он работал быстрее То есть Мы просто Считаем что указатель
Михаил Непряхин: если Посмотрим что Это
Михаил Непряхин: этоинт да в конечном итоге
Михаил Непряхин: дальше и Поэтому он восемь бай да как бонус восемь бай
Михаил Непряхин: дальше у нас есть его длина
Михаил Непряхин: то есть и
Михаил Непряхин: если Мы Под капотом выделили память
Михаил Непряхин: значит под капотом У нас Будет массив из восьми Стрингов
Михаил Непряхин: а вот мы его там выделили
Михаил Непряхин: и если У нас там ничего не записано ноль элементов ну длина будет ноль
Михаил Непряхин: если один элемент Мы туда, записали нам год один
Михаил Непряхин: капасити емкость
Михаил Непряхин: она просто будет равна вот этому вот какое здесь значение Массива есть вот столько Она и будет то есть Поэтому когда вы понимаете вот можно Же проверить какой копась я тебя усвайся если, вы понимаете Что он восемь посмотрели он восемь к опасности это значит Что под капотом Там вот этот массив с восьмеркой его здесь Он и выделен
Михаил Непряхин: а это может быть ноль, значит Нет элементов мы Никуда ничего Не добавили восемь. Может быть значит Он Полностью запомнил это добавили четыре значит Там четыре элемента
Михаил Непряхин: вот Если, Мы Сейчас будем туда добавлять делать аппен то линбод пять
Михаил Непряхин: э ну и длина получа размер э Этого
Михаил Непряхин: свайса
Михаил Непряхин: на стекке
Михаил Непряхин: а двадцать четыре байта потому что три поля
Михаил Непряхин: зачем надо это знать потому что могут спросить на собеседовании чего нибудь будьте То есть в Принципе вы, Всегда зацепляетесь на Собеседование За Темы Которые знаете вот если, вам То начинает и например, что нибудь спрашивать про слайсы вот вы прямо, все выдавайте
Михаил Непряхин: что там вот три поля сюда и тут он может там спросить сколько эти Поля у них Размер а Это, обычный Инд что Это, им тогда Условно что Это, Интуиция двадцать четыре Байта получается То есть за это может зайти разговор Поэтому Важно понимать что он двадцать четыре. Байта
Михаил Непряхин: и это по-моему самый толстый указатель по-моему три Поля больше нет никакого Толстого указателя потому что. Интерфейс у него два поля шестнадцать бает стринга тоже два поля шестнадцать бай
Михаил Непряхин: а ну и все вроде толстых указателей, больше и нет остальные
Михаил Непряхин: одному просто просто указателю типа мапа просто указатель канал он просто указатель
Михаил Непряхин: функция просто указатель
Михаил Непряхин: да а вот так чтобы толстый указатель с тремя полями только спайс
Михаил Непряхин: так здесь пока на текущий момент есть вопрос или пока все понятно этим так будем двигаться аккуратно чтобы Потому что Тут оно осваивается разбор, да Давайте Можно нас учить озвучить вопрос голосом но ведь.
David R: Всем при этом Слышишь меня.
Михаил Непряхин: Да.
David R: А вопрос такой можно вернуться к примеру где Моя структура с Внутренним содержанием, вот
David R: а вот тут, получается У нас есть длина есть Емкость. Есть указатель Куда то Там на массив но нигде не вижу чтобы хранилась информация о типе данных и если У нас создается нил уинтер слайс
David R: то есть с указателем на нил и Потом когда
David R: а сласть начинает ссылаться на какой-то массив как он понимает что. Именно должно быть ну. Какую память надо выделить в массиве Там инт восемь им. Тридцать два им. Шестьдесят четыре Или что-то Там ну. Эта. Информация про Тип Элемента Массива Она нигде не хранится И непонятно как оно Будет Дальше
David R: И увеличивать Егэ Длину И Увеличить Емкость. И Там выделять память ну вот этот момент непонятен.
Михаил Непряхин: А хорошо вопрос хороший значит смотрите вот есть и
Михаил Непряхин: два варианта инициализации нужно как бы работать даваться перемены вот смотрите значит
Михаил Непряхин: когда Мы Делаем вот так. Вот
Михаил Непряхин: то у нас получается зеровелью свайс
Михаил Непряхин: зеро вильюс лайс он нил то есть вот Если, вы будете проверять вот так вот создаем свальс проверяйте ни. Он Или нет
Михаил Непряхин: и он пишет тру
Михаил Непряхин: и вот в этом случае здесь реально ни. У
Михаил Непряхин: То есть Там массива
Михаил Непряхин: Не Интуитивно его нет
Михаил Непряхин: и второй вариант значит лидера когда вы делаете это, Через Присваивание ну. То есть похожая Ситуация, но все таки вы используете эти фигурные скобки а фигурные скобки после используют после типа
Михаил Непряхин: это Всегда, инициатива
Михаил Непряхин: то есть вы его инициализируете
Михаил Непряхин: и в этом случае он уже не нил и вот в этом случае уже здесь будет массив
Михаил Непряхин: ноль
Михаил Непряхин: вот так вот ну если вот тут была стринга
Михаил Непряхин: вот он тут, стринга окажется
Михаил Непряхин: то есть вот в этом случае как бы понятно, что, ну здесь массив Стринг, так оно и есть
Михаил Непряхин: в этом случае и
Михаил Непряхин: по этому по Этой структуре действительно непонятно какой тогда инициализировать массив вот каким, каким, каким, типом
Михаил Непряхин: на этот Вопрос я ответ не знаю
Михаил Непряхин: потому что ну это уже Вот видимо какая-то магия компилятора а не исключаю Возможно, что все таки Там
Михаил Непряхин: а возьмите ему Как надо Отличить, типа Вот в этом случае Он будет Равен Не Лу а Вот в этом Не неву
Михаил Непряхин: и Видимо все Таки как то помечается видимо как то будет типизирована все таки вот эта переменная Этим типом
Михаил Непряхин: ну да видите как бы мы когда заводим вот эту переменную
Михаил Непряхин: а вот здесь же Тип То имеется
Михаил Непряхин: ну сложный вопрос Я просто, не знаю его ответ но видимо как То компиляторной магии
Михаил Непряхин: но вот когда мы инициализированные свадьбы Заводе ну все понятно но где мы и Так видим как из какого типа здесь с вас видимо какая то Есть табличка где эта идеальная Есть
Михаил Непряхин: Так
Михаил Непряхин: а чем. Свайся такие отличаются по Хранению в памяти смотрите значит
Михаил Непряхин: отличие от Строки
Михаил Непряхин: строка это Всегда указатель на
Михаил Непряхин: вот такой такой массив
Михаил Непряхин: ну. Допустим там не знаю восемь
Михаил Непряхин: то есть э свайт
Михаил Непряхин: потому. Что и
Михаил Непряхин: ну. И есть байда восемь бит то есть это байт это Алиас на юин восемь
Михаил Непряхин: шос
Михаил Непряхин: вот юнь восемь Ну или или то же самое что это слайс юинд восьмых То есть восьмибитных очисел.
Михаил Непряхин: Первое отличие да второе отличие
Михаил Непряхин: нету нету копасити есть Только длина у строки и Поэтому строка Это вот такая структура с двумя полями и она уже шестнадцать бойца тысновесит
Михаил Непряхин: и третье отличие
Михаил Непряхин: строки и неизменяемые,
Михаил Непряхин: и
Михаил Непряхин: если вы ну Поэтому и копаете не нужно потому что лен Всегда равенка позитив
Михаил Непряхин: в этом случае вот Сколько здесь есть длина массива вот такое значение ботули если, здесь оно пять то длина будет пять то есть вы когда строки проверяете Или вы просто понимаете Какого Размера Там Внутри слайс байт Под капотом
Михаил Непряхин: Поэтому строки строки очень легко Конвертируются в спайс-байт
Михаил Непряхин: и слайс байден, очень легко конвертируется в строки
Михаил Непряхин: Там
Михаил Непряхин: и Поэтому когда Допустим Мы Работаем с какими-то пакетами
Михаил Непряхин: спрингс точка ну вот контейнс например да Там проверить наличие строки в Пастроке, то Есть вот нас под строка Мы ее Хотим? Найти, вот в Этой Строке То, есть просто
Михаил Непряхин: поиск контейнеры возвращают да Или Нет ну типа есть вот эта пастроковать по страхе Или Нет так вот все вот эти вот функции
Михаил Непряхин: из пакета, стрингс
Михаил Непряхин: они имеют точно такие же аналогии в пакете байц
Михаил Непряхин: берем просто меняем стрингсонабайтс ну конечно да здесь придется Нам обернуться привести это То есть тут уже Мы работаем с байтами сделать вот Так вот
Михаил Непряхин: Привидение, через Круглые Скобки деваться то есть короче говоря
Михаил Непряхин: Мы говорим Какой Тип
Михаил Непряхин: Какой Тип Хотим, привести вот к этому Типу и в кобочках это Берем вот ну и здесь соответственно Тоже, надо Обернуть Вот так Свасть байты
Михаил Непряхин: Вот и
Михаил Непряхин: значит это
Михаил Непряхин: следствие какое из этого Ра Строки неизменяемое
Михаил Непряхин: то при Конкретинации строк ну Сложений строк да
Михаил Непряхин: При изменении строк Происходят локации
Михаил Непряхин: и Поэтому когда вы работаете Ммм со строками Активно там что-то складываете что-то меняете
Михаил Непряхин: нужно использовать буфер.
Михаил Непряхин: А уферы под капотом будет этот самый вайс-байт
Михаил Непряхин: и потом в конце только вы превращаете его в стрингу
Михаил Непряхин: вот ну это Так мы потом до старинных Дойдем и еще Про это Поговорим но это хороший вопрос тут в тему, чем. Отличается
Михаил Непряхин: стринга От свайса
Михаил Непряхин: еще Есть гарантия
Михаил Непряхин: что когда вы создаете стрингум
Михаил Непряхин: а через литературу
Михаил Непряхин: лейтенант стринги это
Михаил Непряхин: кавычки
Михаил Непряхин: вот когда вы так создали старингу Есть гарантия что она будет
Михаил Непряхин: а юта восемь то есть к император сделает проверку что вот здесь вот то что мы передали это гарантированно витаев восемь
Михаил Непряхин: а но как вы только что поняли
Михаил Непряхин: очень часто для оптимизации работают не сосвайс ну не со стренгой а со с лаййтом вот так вот
Михаил Непряхин: То когда вы какой-то некий спайсбайт конвертируете строку
Михаил Непряхин: Там проверки Этой нет и поэтому Там может быть мусор
Михаил Непряхин: вот так к слову Это все отличия с вальса от стринги По большому счету сталинград Асфальт
Михаил Непряхин: ну просто чуть-чуть потонешь
Михаил Непряхин: чуть потом же Чем, на Одно, поле.
Михаил Непряхин: Так Раз вернем так еще кто-нибудь голосом хочет вопрос задать если хочет быть создавать
Михаил Непряхин: так мы их еще принимаем тип когда
Михаил Непряхин: с лай сделаешь Ну, да
Михаил Непряхин: если вам Об этом хочется почитать Исходный Код Он Тоже на Голову. Написан на Голову. Поэтому
Михаил Непряхин: ну если очень захотеть то это можно сделать Но Особенно, с ними сетями. Шатусь просто
Михаил Непряхин: и сперва надо найти исходный Код пишу и говорите Там Чат жепети найди мне исходный Код работы Маяка
Михаил Непряхин: а потом Копируйте ее и Говорите там объясни мне Как это работает и в принципе, там прям русским языком оно объяснится Если очень хочется.
Михаил Непряхин: Так Предположение ответа Размера вай стринг, августа кари дондс рез, бай
Михаил Непряхин: страх
Михаил Непряхин: но там так вопрос если функция получает сынку наслайс
Михаил Непряхин: Всегда делать Копию если функция получается звук У насвайс
Михаил Непряхин: Ну, Да Ну, происходит копирование
Михаил Непряхин: слайса
Михаил Непряхин: То Есть если Вы Передаете слайс в Функцию
Михаил Непряхин: Или возвращается спальня. С функцией вы копируете
Михаил Непряхин: сколько вы копируете двадцать четыре байдена копировать размер свайса двадцать четыре байта на стке, когда вы ему передаете функцию вы копируете двадцать четыре Байта
Михаил Непряхин: вы копируете указатель
Михаил Непряхин: То Есть указатель все равно указывает вот Там на Ячейку памяти вы его просто скопировали Поэтому
Михаил Непряхин: Ну, не надо добавлять вот сюда Звездочку к указателю
Михаил Непряхин: просто копировать эту структуру и все ничего страшного
Михаил Непряхин: так Давайте Отдохнем две, три минуты
Михаил Непряхин: и продолжим
Михаил Непряхин: да так и Не понял у александра и то и по учеба зрителей Нет александр вы с нами
Михаил Непряхин: ты переживаю
Михаил Непряхин: видимо Нет
Михаил Непряхин: Так ванна.
Илиас Эззахид: У Меня Есть Можно Вопрос.
Михаил Непряхин: Да да.
Илиас Эззахид: Вопрос неправильно. Сформулировал Только Что голосу Я имел. В виду под Если вот У нас пункция Там в Лигасе Плохо написано и там переиздается ссылка на слайс а не сам слайф. Ну не сам значение
Илиас Эззахид: а три Факторы там на слайк не получится так как это Внешняя библиотека ну, например,
Илиас Эззахид: нужно в таких случаях Всегда стоит делать копю слайса ну, там через копию
Илиас Эззахид: чтобы не менять тоже память бассеева.
Илиас Эззахид: Может быть У нас там эта ссылка уже ссылается втно
Илиас Эззахид: это значение в памяти где-то уже используется и чтобы не было конфликта
Илиас Эззахид: Всегда делать коп в таких случаях.
Михаил Непряхин: Ну. И
Михаил Непряхин: вопрос сложный вопрос сложный
Михаил Непряхин: и на Него Нет назначенного ответа надо смотреть в Код как Там, с Ним
Михаил Непряхин: баба потому Что Ну передаете вы вот передаете вы вот Так вот свайс
Михаил Непряхин: Или передаете вы вот Так вот свайс вы в Любом Случае имеете доступ к этому внутреннему массиву, и вы его хоть, так можете поменять вот так можете поменять просто
Михаил Непряхин: грубо говоря вот это вот Использование по указателю свайся оно как бы, избыточно ну. Потому Что типа зачем указательный указатель если Там уже и так указать Или это получается как две звездочки То есть ну можно же считать Что здесь как Будто невидимая Звездочка есть ну вот эта вот и
Михаил Непряхин: Поэтому То Что Вы отреагировали уберечь эту звездочку По большому счету ничего Не поменяется Что так вы будете к нему Иметь доступ и так Поэтому как бы
Михаил Непряхин: тут как бы такое ни решение это Не. Решает оно
Михаил Непряхин: так вот александра александрова все-таки Получилось да дети
Михаил Непряхин: небов
Михаил Непряхин: ну и
Михаил Непряхин: давайте Еще Раз посмотрим на эту структуру значит просто подумаем и
Михаил Непряхин: Ну Понятно, что Если ленкапасите. Да просто подумаем что какие есть варианты вообще что Можно что Мы можем сделать
Михаил Непряхин: а уже потом посмотрим на синтаксис как То Или иное Там парализовано
Михаил Непряхин: Так значит вот есть У нас
Михаил Непряхин: массив
Михаил Непряхин: который Там под капотом и свайся
Михаил Непряхин: частное ростове сколько нибудь я чаек
Михаил Непряхин: Тонути ноль один
Михаил Непряхин: два
Михаил Непряхин: трие
Михаил Непряхин: четыре пять шесть
Михаил Непряхин: вот ну соответственно тут у нас есть длина и есть копасти
Михаил Непряхин: какую борт, у этого демок опасности
Михаил Непряхин: ну вот у нас в семьечеек копасти будет семь,
Михаил Непряхин: то есть это
Михаил Непряхин: вот этот вот массив который под, капотом
Михаил Непряхин: куан у нас винтов
Михаил Непряхин: вот это семь, вот Этой ботка пасти
Михаил Непряхин: ален ну соответственно
Михаил Непряхин: это я Нарисовал индексы да
Михаил Непряхин: для давайте наверное тогда же значение напишем
Михаил Непряхин: вот здесь вот
Михаил Непряхин: тут, надо было сверху нарисовать
Михаил Непряхин: вот индекс этих ячеек значение у нас если, мы ничего не заполнили
Михаил Непряхин: джаз
Михаил Непряхин: лен
Михаил Непряхин: копасти
Михаил Непряхин: капаете семь,
Михаил Непряхин: если, мы
Михаил Непряхин: ничего весьма ле ноль мы еще ничего не положили ну, у нас указатель указывает как бы вот Сюда. Да мы еще ну у нас ничего нет
Михаил Непряхин: и когда мы хотим, Добавить допустим добавили мы
Михаил Непряхин: везде в леопард добавили сюда значение кота вэлью
Михаил Непряхин: и ээ лен как бы сдвинулся сюда и стал
Михаил Непряхин: Единица
Михаил Непряхин: а значит первое что мы можем сделать мы добавляем какой То элемент добавляем еще один элемент
Михаил Непряхин: лен становится два
Михаил Непряхин: вот этот вот лен как, бы становится здесь Капасти Не Изменяется
Михаил Непряхин: М-м ну, можем Мы его удалить конечно можем удалить но просто за налить вот этого значения
Михаил Непряхин: можем мы
Михаил Непряхин: добавить все до конца то есть добавили добавили добавили добавили
Михаил Непряхин: лен стал
Михаил Непряхин: семь
Михаил Непряхин: когда мы еще сделаем еще раз аппетит
Михаил Непряхин: типа хотим, добавить конец
Михаил Непряхин: то у нас Автоматически Произойдет
Михаил Непряхин: в два Раза а вот серо за память это уже бот Другой, массив
Михаил Непряхин: в него вот это все перекопируется
Михаил Непряхин: кто здесь вот это все будет Сорок два тридцать два
Михаил Непряхин: на Этот массив потом не. Будет никаких указателей его соберет горбушка лектор
Михаил Непряхин: и здесь Мы добавим еще один элемент и у нас изменится значит
Михаил Непряхин: кпасть будет ну в два раза больше Там семь, было стало, четырнадцать а лен будет было семь, ста восемь
Михаил Непряхин: еще из интересного что, Мы можем Делать
Михаил Непряхин: мы
Михаил Непряхин: можем
Михаил Непряхин: взять вью
Михаил Непряхин: определенную часть
Михаил Непряхин: значит
Михаил Непряхин: Есть у нас Свайс
Михаил Непряхин: заполненный он весь заполненный этот Раз два три. Четыре пять шесть семь вот типлен семь
Михаил Непряхин: все заполнены какими-то значениями
Михаил Непряхин: и Мы хотим, вот взять вот Это значение
Михаил Непряхин: и вот эти два значения
Михаил Непряхин: а вот Это вот не брать
Михаил Непряхин: и это не брать и это не брать то есть чтобы в итоге получился свайс
Михаил Непряхин: из трехэлементов
Михаил Непряхин: то есть вот это вот сюда уедет это сюда уедет и это сюда уедет
Михаил Непряхин: вот такой еще есть функционал
Михаил Непряхин: и и для этого тоже есть синтез то есть вот Это Мы Тоже можем сделать но Это уже Создается как бы другой свайс
Михаил Непряхин: и
Михаил Непряхин: еще
Михаил Непряхин: Мы можем физически
Михаил Непряхин: сокращать массив слева ну то, есть вот как вот в этом случае Мы взяли вот отсюда,
Михаил Непряхин: ну например, Мы можем взять без дыры просто вот хотим, взять вот это все просто без первого элемента
Михаил Непряхин: то есть у нас тут лент получится, уже не семь а
Михаил Непряхин: а шесть
Михаил Непряхин: и мы начнем а видеть наш массив
Михаил Непряхин: то есть к опасности Можем сдвинуть что Вот он начинаться бод массив не отсюда а отсюда
Михаил Непряхин: и если тут к пасе Было Изначально семь, Мы Можем копать эти Сдвинуть в шесть.
Михаил Непряхин: Вот в Эту сторону
Михаил Непряхин: а еще Мы Можем копасть и Сдвинуть и с правой стороны Тоже. Допустим вот этот последний элемент мы Не хотим видеть в Массиве под капотом мы можем его Тоже, Уменьшить копасть и Бот уже Пять и по факту У нас будет вот эта вот область памяти
Михаил Непряхин: а вот это вот будет не использоваться
Михаил Непряхин: не знаю там соберет эта коробочка Электро Или Нет Там постоянные изменники Это Делают может быть даже вот эту часть на Которую уже никто Не указывает Тоже, собирает Коробочку лектора, останется только вот эта часть
Михаил Непряхин: вот
Михаил Непряхин: Ну вот это вот на самом деле весь функционал
Михаил Непряхин: а Еще Еще Еще про гонку, данных значит как возникает гонка данных
Михаил Непряхин: в этом месте
Михаил Непряхин: вот Мы завели Наш с вайс
Михаил Непряхин: ну есть у нас под капотом
Михаил Непряхин: пассив
Михаил Непряхин: а на Него Мы указываем
Михаил Непряхин: Там Внутри елены копасети и указатель Есть Есть У нас какая то функция
Михаил Непряхин: и она принимает вот этот наш слайс как аргумент
Михаил Непряхин: м-м как вы Знаете функцию Передача Будет чрезкопирование осуществляться Это значит Что Мы в функции будем видеть копию этого свайса То. Есть появляется еще Одна структура еще Один с вайс
Михаил Непряхин: оон под капотом Тоже Будет ссылаться вот на этот вот массив
Михаил Непряхин: получается у нас Есть Две структуры с Лайсом
Михаил Непряхин: и что важно понимать Скопируется ведь елен
Михаил Непряхин: и копати То есть мало того что у них будет общий шаренный массив под капотом
Михаил Непряхин: у них будут разные ленты
Михаил Непряхин: и разные копатики
Михаил Непряхин: и
Михаил Непряхин: Мы можем вот в Этом свайсе
Михаил Непряхин: поменять элен и Копати
Михаил Непряхин: если, тут они были не знаю, Там лен было один окопасите, десять
Михаил Непряхин: то, здесь Мы можем сделать лен
Михаил Непряхин: три
Михаил Непряхин: а капасити восемь
Михаил Непряхин: и то, есть вот этот вот слайс он будет ну я Же и сказал Да что с вас Это как вью То есть Это как бы Мы Через структуру слайса смотрим на массив Через слайс
Михаил Непряхин: и Этот слайс
Михаил Непряхин: Он Будет видеть
Михаил Непряхин: Вот Вот Эту Вот часть,
Михаил Непряхин: аа этого самого Массива под капотом а эта сласть Будет Продолжать видеть
Михаил Непряхин: весь массив
Михаил Непряхин: и если, Мы вот здесь вот Внутри функции, что-то поменяем вот допустим вот эту вот ячейку Мы возьмем поменяем
Михаил Непряхин: то в Этом Свайсе она Поменяется тоже
Михаил Непряхин: ну? Например, если у Него лен один
Михаил Непряхин: а Мы поменяем вот здесь третий элемент
Михаил Непряхин: то, и
Михаил Непряхин: Мы в этом смысле даже и Не увидим Это Изменение потому, Что оно было сделано Там под капотом
Михаил Непряхин: Мы можем Продолжать сюда аппенди добавили алимент Еще добавили элемент вот Отсюда и перезатерли вот этот элемент
Михаил Непряхин: а этотлайс
Михаил Непряхин: увидит
Михаил Непряхин: вот это изменение, потому Что У них под капотом Один, и тот же слайс
Михаил Непряхин: короче говоря
Михаил Непряхин: все задачи собесы они вот про эту гонку данных то есть это гонка данных
Михаил Непряхин: это
Михаил Непряхин: ну как бы с одной стороны косяк да что такая Гонка данных возможна потому, что Ну вот например, власти решили этот вопрос
Михаил Непряхин: но я уж говорил какой ценой вы решили ценой очень высокой Сложности и как бы да круто с одной стороны Еще такого невозможно но с другой стороны ну я не готов, платить такую цену э и как бы
Михаил Непряхин: мне это не, нравится, то есть как бы
Михаил Непряхин: а решение какое вот как вот работать в Этой ситуации с вайсами
Михаил Непряхин: Ну, самое простое Не Меняйте в них ничего Ну, вот получили Вы какую То ссть структуру Свайса но Не Меняйте Вы Там
Михаил Непряхин: даже если это ваш, код вы Там понимаете Что ничего не Будет происходить,
Михаил Непряхин: просто создайте еще Один другой слайс
Михаил Непряхин: и Верните его из функции, да вы можете прямо, вот в эту вот отсылать его Скопировать там но мало ли как потом после вас вашим кодом будут работать
Михаил Непряхин: то, есть мораль Такова что
Михаил Непряхин: вот Эти, вот все возможности, там порезать его как-то что-то лен с резать ко пасть и слезать Слева Справа
Михаил Непряхин: Они нужны для низкого уровня программирования для оптимизации для алгоритмов
Михаил Непряхин: то есть как бы это по сути ансейв как бы операции которую нам дали ну вот пожалуйста, пользуйтесь без всякого там вансейфа на синтаксиса то есть Это прям такой большой френворк для работы с областью памяти по названием вот массив
Михаил Непряхин: и на себе тогда любят это все спрашивать и по сути мы прошу ну, что только из собеседников вот подробно все разбираем что в жизни конечно Ну получили Мы с вай какой то
Михаил Непряхин: Ну не меняйте вы Там ничего создайте еще Один свайс
Михаил Непряхин: Читаем этот слайс в циклифор
Михаил Непряхин: и записываем то Что нам надо в новый слайс
Михаил Непряхин: ньюс лайс
Михаил Непряхин: и уже этот слайс Мы потом Вернем из функции и все и не будет никаких Проблем, не будет. Гонки данных ничего не будет.
Михаил Непряхин: Значит когда я Был когда Еще немного. Работал с Голоду. То я там работу первым нашел, как бы там Еще Не было моды вот так вот мучить, с вайсы она чуть позже пошла
Михаил Непряхин: я на собесах отвечал типа вот спрашиваю чего нибудь там Зачку сдают
Михаил Непряхин: я отвечал типа Что ну? Я же Так в жизни Не Работаю типа Так Делают только мудыки да я ж не мудак я так не делаю типа я не знаю чего будут будет а там задачи как бы, на собеседниках они ну в стиле типа вот Кот прочитай и скажи чего Будет
Михаил Непряхин: типа я Не знаю. Чего Будет я Так Не пишу Но ключе Это Не прокатывает Я так как бы несколько Раз, поотвечал понял, что. Не катит то есть придется разбираться придется отвечать на эти Дурацкие вопросы, и даже если вы так в жизни писать не будете ну вы так не будете скрыть его писать
Михаил Непряхин: вот обо всех. Этих возможностях и надо просто Знать
Михаил Непряхин: Поэтому
Михаил Непряхин: на самом деле это все что можно сделать с лайсом То что я вам рассказал да
Михаил Непряхин: и Теперь только осталось посмотреть как Это делается в Синтаксисе
Михаил Непряхин: и если вы вот Это поняли
Михаил Непряхин: То даже если вы забыли синтаксис вы во Первых и на собеседовании ответите. Ну как бы корректно какую то фигню туфту совсем не будете задвигать
Михаил Непряхин: и и
Михаил Непряхин: ну вы и
Михаил Непряхин: вот но по большому счету все крутится вокруг вот этого выделенного а массива неизменяемого Она он не изменяемый
Михаил Непряхин: то Есть слайс это
Михаил Непряхин: вью над массивом
Михаил Непряхин: так теперь давайте вопросы, вот по Этой части опять же Если какие-то Вопросы, есть
Михаил Непряхин: то прямо, может голос нам задавать
Михаил Непряхин: землю с Вазий семи элементов потом сделали Власть два на основе Сальса один если потом Удаляем элемент Спасти один свадьба изменится
Михаил Непряхин: и Там есть Куча кейсов когда может и Не изменится Но и
Михаил Непряхин: припенди
Михаил Непряхин: может не измениться
Михаил Непряхин: а так как выбираться к опасности при создании спальса можно указать да при создании сальса можно указать то есть вообще вот это вот все можно указать можно указать размеры какой бы вот Массив под капотом насвалится какая У него была длина как опасите то есть
Михаил Непряхин: все что вот можно поменять это ну вот это все меняется извне Как бы структура хоть, и Приватная Мы ее не Видим но Мы понимаем Что она Там есть и вот это все меняется
Михаил Непряхин: так как убираться кпасть просто, так а если Мы его с нуля заполняем чарлз пэн то к опасности будут увеличиваться
Михаил Непряхин: поговорим Сейчас об, этом Там тоже в своей хитрости расскажи пожалуйста, особенности Сравнения с вальсах ну Мы напрямую их не Можем сравнить операторам равно То есть у нас сравнение между свайсами равно Не работает
Михаил Непряхин: свайсы это Не композитор
Михаил Непряхин: завезли недавно из пакета слайсис и там можно сравнить таки ну, либо просто полуэлементно
Михаил Непряхин: Каждый элемент
Михаил Непряхин: ну, Есть Там пре функции можно я ни разу ее Не использовал потому Что рисовали Сравнивать почему то как то Не приходилось
Михаил Непряхин: Так если У нас два Сальса Которые смотрят на Один и тот же мотив Один из лайцев или он выходит закопасити Не может ли выйти за Копасти
Михаил Непряхин: и если выходит Создается новый свайс где происходит перелокация
Михаил Непряхин: ну хорошо Давайте Сейчас я покажу Этот случай отдельно.
Михаил Непряхин: Так закопасти в этом случае Что случится в памяти спасибо для одного создается Новый, а на старом месте все Еще будет соваться, первый свайс да-да-да верно Но Давайте Еще вот Это Тоже, нарисуем так я здесь по моему
Михаил Непряхин: а
Михаил Непряхин: ну вот я показываю пример значит
Михаил Непряхин: Давайте Еще Раз Нарисую из чистого. Листа значит смотрите
Михаил Непряхин: есть У нас Один. Свайс вот он Там указывает на какую То на какой то. Массив
Михаил Непряхин: У Него уже лен
Михаил Непряхин: восемь и Копайте восемь короче все заполнено восемь восемь заполненный
Михаил Непряхин: Мы передаем функцию Например,
Михаил Непряхин: Ну просто функция простой пример Копирования да Ну, Мы короче скопировали массив Ну, вот просто. В когда Мы Передаем функцию он копируется Поэтому Это простой пример ну и чаще всего на собеседник Тоже, по функции любят
Михаил Непряхин: а значит у нас Получилось два теперь, два с лайса то есть два вью На один и тот же участок к памяти
Михаил Непряхин: Им значит здесь мы Делаем Аппетит
Михаил Непряхин: мы Добавляем один элемент
Михаил Непряхин: происходит Перелокация,
Михаил Непряхин: вот здесь вот нового куска памяти Она будет двоих в два раза больше вот эти все элементы сюда Перекопируются
Михаил Непряхин: у нас будет лена
Михаил Непряхин: в Девять мы тут Один. Элемент уже добавим а к опасности будет, ну в два раза шестнадцать
Михаил Непряхин: копаться символом шестнадцать и вот здесь указатель внутри вот этого свайса скопированного он будет, Ссылаться, вот сюда
Михаил Непряхин: ааа
Михаил Непряхин: указывать а вот этот слайс он будет, Продолжать указывать сюда
Михаил Непряхин: и вот этот пример когда дорожки Разошлись
Михаил Непряхин: и теперь, вот здесь хоть что Мы будем менять удалять чего угодно делать короче все они разные они абсолютно разные то есть когда происходит переполнение, к опасности
Михаил Непряхин: и выделение ну это динамические массивы организации структуры динамический массив почему потому что происходит автоматическое выделение памяти при переполнении оригинального изначального массива под капотом потому Что он не изменяемый
Михаил Непряхин: и в этом случае это уже абсолютно Точно разные свайсы
Михаил Непряхин: и вот ну тоже вот на это тоже очень Много задача на собеседованиях и это тоже важно понимать и тоже он был Например рассматривать
Михаил Непряхин: вот теперь Точно все что бывает больше он ничего не забыл больше ничего не бывает
Михаил Непряхин: так ладно голосом Еще кто хочет хочет он не задать вот.
Konstantin: Спросить смотрите если у нас есть слайс мы подрезаем его вначале то копастие будет уменьшаться ну.
Михаил Непряхин: Да.
Konstantin: Если Мы его в конце подрезаем То насколько Я Понял Капости Не Будет Уменьшаться
Konstantin: Так их Нет.
Михаил Непряхин: Да но вот Хороший вопрос значит смотрите когда мы вначале его подрезаем Ну все просто как подрезать копасть идти вначале ну у нас же указательный первый элемент так подрезать вначале ничего не стоит Раз, вот и указываем сюда и для этого свадьба своего уже Нет а тут он остался и как бы все нормально
Михаил Непряхин: а с конца недавно завезли возможность подрезать к опасности с конца Раньше, так было нельзя
Михаил Непряхин: и Поэтому Ммм ну были, как бы тут Проблемки с этим связанные
Михаил Непряхин: сейчас прям можно косить и подрезать с конца
Михаил Непряхин: и в этом случае ну вот смотрите все ведь просто,
Михаил Непряхин: вот здесь У нас ну.
Михаил Непряхин: Аренда, давайте Еще Раз, значит это
Михаил Непряхин: да ты да это хороший вопрос прямо, в темном Час.
Михаил Непряхин: Потраченное время Порцию
Михаил Непряхин: значит
Михаил Непряхин: вот У, нас изначальный слайс на четыре элемента
Михаил Непряхин: Мы его скопировали
Михаил Непряхин: Но ведь это первый свайс вот Он сюда указывает Мы скопировали
Михаил Непряхин: получили Второй слайс который Тоже указывает вот сюда
Михаил Непряхин: ну а
Михаил Непряхин: значит здесь капасити равен вот этому оригинальному салью под Капотом вот Он четыре элемента
Михаил Непряхин: и вот Он вот у нас такой свадьбы капасти четыре когда мы скопировали вот Он тоже был соответственно здесь копасти четыре Ну тут лен пока не интересен да прокопасти важно
Михаил Непряхин: если, мы Сейчас? Возьмем и Копатити Скажем что копайте три
Михаил Непряхин: Ну для нас вот этот элемент
Михаил Непряхин: уже перестает Быть доступным
Михаил Непряхин: и мы оригинальный массив мы с Ним ничего Не Делаем но просто мы ограничили вот здесь от копасти три
Михаил Непряхин: и все вернуть это нельзя
Михаил Непряхин: ну по крайней мере Безопасно Но Возможно она ценит что-то есть такое я Не знаю Не очень силен вонсейфе значит все мы вот до этого элемента больше никогда не можем достучаться вот то есть такая возможность есть
Михаил Непряхин: ну и вначале подрезать да Мы можем еще вначале вот туда подрезать и тогда Ботка пасити два
Михаил Непряхин: и Мы можем управлять только вот этой Области, Памятью памяти но если, мы вот из этого свайся что-нибудь Тут Поменяем Этот увидит эти изменения
Михаил Непряхин: а изначальный массив Не Меняется
Михаил Непряхин: Так Давайте есть Еще вопросы, тут есть в тему, кого-то
Михаил Непряхин: Так ван Давайте Смотрим Кот
Михаил Непряхин: какие
Михаил Непряхин: аа Не нейнициализированный слайс равен Неву
Михаил Непряхин: ну Ка. Пассителен при этом по Нолям
Михаил Непряхин: есть возможность создать инициализированный вальс Он не будет равен нилу,
Михаил Непряхин: но Он будет указывать под капотом на нулевой вот такой вот массив
Михаил Непряхин: я не знаю нафига Это надо ну Говорят что есть кейсы где то важно где важно отличать налвнимовый свайс от
Михаил Непряхин: Нулевого слайса ну мне такое в жизни не встречалось но вот просто важно понимать что вот Есть синтаксис
Михаил Непряхин: инициативу, то Есть это через литеров свайся делается а Есть просто зеровелью зеро вальса нил
Михаил Непряхин: так
Михаил Непряхин: он и
Михаил Непряхин: ну здесь прочь значит как обратиться к элементу
Михаил Непряхин: есть ли у нас такой ниловый и
Михаил Непряхин: слайс не или нетнициатизированный
Михаил Непряхин: Мы в обоих случаях не Можем Обратиться по индексу потому что будет
Михаил Непряхин: индекс ауто фрэнч это топ- два ошибка в гол. После неупоинтера ресепшн
Михаил Непряхин: ну потому Что нету Проверки вронтайме в смысле в компартииме Мы вот здесь заранее Сейчас Не, можем проверить это валидный индекс Или Нет если. Мы запустим то мы получим и
Михаил Непряхин: что мы пытаемся обратиться, к нулевому элементу
Михаил Непряхин: ну а нулевой элемент это как бы первый да то есть индекс индексируется массивы с вальсы с нуля то есть нулевой элемент он первый элемент нулевой и вот он говорит что длина слайся Ноль
Михаил Непряхин: а вы пытаетесь обратиться к аа первому элементу
Михаил Непряхин: то он это может сделать эту проверку только вронтами
Михаил Непряхин: и
Михаил Непряхин: так здесь
Михаил Непряхин: и записать тоже нельзя то есть если вы сейчас начнете писать в нулевой элемент
Михаил Непряхин: э память не инициатива то есть наверняка как бы массив то он не цивилизован но ле н равен нулю
Михаил Непряхин: ячейка памяти как бы еще недоступна ни на чтение ни на запись тоже паника
Михаил Непряхин: как же. Черт возьми записать в такой слайс
Михаил Непряхин: что-то
Михаил Непряхин: почти Всегда Мы Используем Аппен То есть Аппетит используется с асфальцами ну очень часто и почти Всегда
Михаил Непряхин: и если Мы работаем с индексами это не очень Безопасно душу может произойти паника когда Мы делаем Аппетит тут паники Быть не может хоть мы венциализированный свайс что-то Пишем хоть вне инициативной
Михаил Непряхин: А пэнт работает в Любом случае то есть вниловый слайс мы спокойненько можем
Михаил Непряхин: опенди то есть в конец добавлять элементы есть еще интересные возможности у Этой функции аппент можно добавлять сразу несколько элементов
Михаил Непряхин: и есть специальный синтаксис распаковки
Михаил Непряхин: слайса в этот вот слайс
Михаил Непряхин: он выглядит как троеточие значит есть такой тип три точки. Перед типом и здесь любой тип типа и ин стрип
Михаил Непряхин: значит что это значит что мыф
Михаил Непряхин: функцию можем Вторым аргументом
Михаил Непряхин: передать либо ноль
Михаил Непряхин: а элементов либо Один либо много
Михаил Непряхин: то Есть это такой
Михаил Непряхин: ну как бы вот Единственная возможность и
Михаил Непряхин: значит как, сюда ну вот допустим вот мы вот этот вайт, хотим? Что-то передать если, мы его просто, сюда будем передавать то он посветит что типа сигнатура-то ведь Не свайся вот целая. Сигнатура. Да а Это ты пытаешься сделать Добавить с лайс свайс
Михаил Непряхин: Но можем Добавить вот сюда три точки и произойдет, Распаковка этого свайса он как бы превратится в три точки
Михаил Непряхин: элементов
Михаил Непряхин: это конечно же все равно будет слайс но благодаря этому как бы тут повышается немножко типизация что не просто мы свои передаем как бы можно думать об Этом что сюда попадает с лайс и он превращается в отдельные элементы и как бы вот восстает
Михаил Непряхин: через, запятую на атаку там Стринг, Стрелка
Михаил Непряхин: вот про Это прото чуть что же поговорим где оно используется
Михаил Непряхин: вот значит получаем
Михаил Непряхин: а получаем свайс
Михаил Непряхин: у Которого, добавится лен плюс один
Михаил Непряхин: тут, будет лен один капасети Один ну тут почему Один был тут ноль потому, Что он создал Новый массив
Михаил Непряхин: как вы Помните массив под капотом свайся неизменяемый а раскопайте было ноль то ему пришлось выделить Новый массив и По умолчанию Тонко пасти равен Один и он Там Потом как он Растет ну он двоих Растет и там
Михаил Непряхин: По-разному он там уменьшается со Временем это Мы чуть позже посмотрим
Михаил Непряхин: так вопрос в тему, тут какие-то есть а если это будет другой тип данных вторая точи ну главное чтобы он совпадал со слайсом
Михаил Непряхин: с типом слайса вот у меня Тут Стринги и вот мы только Стринги и можем добавить через три тучи если. Бы инты но надо Было бы
Михаил Непряхин: а ин. Инты добавлять то есть тут типизация работает
Михаил Непряхин: Так пом Да ну теперь Мы Можем обратиться. По Нулевому элементу уж теперь то он тут Добавлен у нас лен Единица значит по первому элементу с наливым индексом Можем обратиться,
Михаил Непряхин: записать тоже теперь. Можем
Михаил Непряхин: записываться. Вот указываться. Этот элемент в квадратных точках
Михаил Непряхин: нулевой элемент ну то Есть он первый
Михаил Непряхин: с Нулевыми Индексами туда где вам запись
Михаил Непряхин: можем сделать инициативу сразу нужными Назначениями ну, то есть вот здесь у нас просто произойдет инициатива
Михаил Непряхин: ну и Там копааси будет ну три ирин будет и копасть в три
Михаил Непряхин: а вот обычно так и работают с лайсом то, есть через литературу
Михаил Непряхин: и мы можем использовать и
Михаил Непряхин: Вунсон. Мейк
Михаил Непряхин: она используется не Только со слайсами и с массивами и с канамами также и с Мапами, но вот чаще всего вы будете увидите с Лайсами, это возможность
Михаил Непряхин: Сразу, Же указать Какой будет, лен и Какой бодко пасю вот здесь вот Мы говорим что Мы хотим, получить Стринг,
Михаил Непряхин: Свадьрингов
Михаил Непряхин: длина его будет ноль
Михаил Непряхин: то есть если бом о пэнди то Мы будем оппонить в первый элемент
Михаил Непряхин: а остальные элементы будут Зероэлью Ну в случае Стринг, Это будут пустые элементы в случае Там у винтов Это будут нули просто
Михаил Непряхин: а значит и копайте будет Опять Мы можем любую цифру написать такое такая бодка пасти и если вернее неправильно, сказал вот Так Там будет как бы хоть. Озеро но Мы его не увидим
Михаил Непряхин: можем еще вот так вот сделать и это будет и лен пети равно и к копасти будет быть все равно и вот в этом случае оно бы озеро Или просто вот короче говоря слайс пустых Стрингов в нашем случае пять пустых Стрингов
Михаил Непряхин: лен пять копайте пять а вот в этом Случае Можем разделить первый год лен старая копасти но обычно вот так все таки делают классические то есть если вы знаете Сколько элементов вам надо хранить типа вам надо
Михаил Непряхин: Две тысячи элементов вы можете сразу сделать так провокацию здесь будет ноль ну и будьте тудапонтить по одному и ленлин будет так расти
Михаил Непряхин: здесь уже будет Не нила вы сама из-под капота естественно он будет инициативный уже
Михаил Непряхин: лен тв
Михаил Непряхин: так получается копии япенд это Одно,
Михаил Непряхин: так и ницлай саудс лайс а пэнт иниц лайс он взялась на утро и тотчас из конца заставить
Михаил Непряхин: мммм
Михаил Непряхин: Так ну если этот слайс Нулевой
Михаил Непряхин: Он им. Же добавит А пэнтон. Тут вы Представляете Каппи он копирует
Михаил Непряхин: а пэн добавляет одно и то же это Было Только в том случае если вот это нулевой был слайс и вот это нулевой был слайс
Михаил Непряхин: тогда да
Михаил Непряхин: вот ну кроша все таки копия пэн не одно, и то же
Михаил Непряхин: в некоторых ситуациях оно может быть одним и то же но так Еще по-хорошему По-разному надо о них думать
Михаил Непряхин: значит про доступ
Михаил Непряхин: ну это я уже сказал да
Михаил Непряхин: просто По индексам обращаемся
Михаил Непряхин: можно в цикле фор пройтись по свайсу
Михаил Непряхин: но
Михаил Непряхин: важно не выйти за границу потому что здесь проверки не будут фронтами как бы если Вы Тут чего-нибудь Ошиблись как-нибудь Не знаю начали
Михаил Непряхин: с чего-нибудь Не того
Михаил Непряхин: То Вы можете выйти ну здесь Допустим Ошиблись Вы можете выйти За границу с лайсом вот ошибка
Михаил Непряхин: вот есть вариант прямо без ошибок точно пройтись
Михаил Непряхин: уерироваться, по всему сфальцу по всей коллекции вот просто вранже делать рефор рэндж и здесь вы получаете вэлью то есть значение свайса
Михаил Непряхин: первым Значением будет индекс ну. Обычно Ай Делают, если, вам Вдруг Нужен прямо, индекс вот этот вот получить, вот вы можете его первым знанием, здесь получить,
Михаил Непряхин: а если, вам нужен только индекс то, можно при этом использовать только одно, число А если, вам нужно только вэлью то вот придется здесь занулить его как Не используемая
Михаил Непряхин: А пэнт значит просто добавляет в конец вайсам значение
Михаил Непряхин: папин Сложная функция Тоже как бы при Этом еще
Михаил Непряхин: когда был он там чуть-чуть позже посмотрим про Это
Михаил Непряхин: так Есть функция клирк недавно добавили она на дженериках здесь дженерики она работает и со Слайсами и с Мапами ведь она джинелек функция
Михаил Непряхин: короче она ведет себя По-разному смапами и с майсами в случае слайсов она просто зануляет себе. Значение то есть все Значения с слайся Надевать зеркалью
Михаил Непряхин: есть ли до этого Я добавил Что У Меня, тут был слайс юзерс с тремя Пользователями если Мы Применим к Лир Там просто останутся пустые строки Вот Так вот
Михаил Непряхин: никогда Не, Приходилось пользоваться. Но может быть где То в алгоритмах это нужно
Михаил Непряхин: Так ну вот да Еще Раз, здесь я показываю значит если Мы одно, число указываем в мейке это Бот елены копаасити этого значения просто будут зеркалью Прямо пронициализировано значение
Михаил Непряхин: если нолик и пасе То Там Конечно тоже будет Зравелью но Мы Их не увидим если. Мы будем читать с лайф То Мы будем видеть что он просто пустой
Михаил Непряхин: Так про копирование
Михаил Непряхин: ну вот То, что спрашивали вы да То, есть если У нас есть
Михаил Непряхин: Мы можем взять
Михаил Непряхин: создать пустой слайс с длинной заранее вот этой, вот
Михаил Непряхин: а Исходного свайса типа соуса
Михаил Непряхин: не сделали типа дистаннейший на свайс
Михаил Непряхин: э, через, копии Мы копируем все что было здесь в Соусе в Дистейнейшем важно чтобы У них совпадали совпадала длина
Михаил Непряхин: Ну наверняка Пасе Да копасть важно чтоб У них тушили на то ладно короче смысл в чем
Михаил Непряхин: Есть ли
Михаил Непряхин: вот здесь вот дистенейшен Не будет места То он Так скопирует только То что. Есть Поэтому как бы из Копии здесь
Михаил Непряхин: как вы знаете с копией вообще вот в продакшен коде ни, разу не приходилось работать то. Есть, Поэтому про Копии вот как, бы много вопросов про копирование да смайцев вот я вот прямо вижу что вот Прям люди интересуют как, первые свайсы
Михаил Непряхин: обычно ведь,
Михаил Непряхин: как бы Нет нужды копировать слайс ну типа вы получаете какой То исходный свайс
Михаил Непряхин: и вы просто в цикле фор по нему по нему идете и там либо фильтруете и берете только то что вам нужно либо как то меняете но вы это записываете, в Новый слайс
Михаил Непряхин: и Поэтому вот эти Вопросы, про копирование слайса я Даже ни на откуда не берутся типа что вы хотите. Писать что нам надо скопировать свать то есть Ну в жизни Копирования свадьба. Никогда не происходит честно Скажу
Михаил Непряхин: то есть видимо Ну Только для каких-то алгоритмов Но я не очень Понимаю каких
Михаил Непряхин: ну потому Что типа зачем нам копья слайса она же нам неспроста нужна
Михаил Непряхин: а наверное она нужна чтобы что-то Там изменить Ну типа ну? Проходите вы в цикле сразу меняете сохраняйте новый Сайт,
Михаил Непряхин: так
Михаил Непряхин: чего у нас тут еще
Михаил Непряхин: создаем
Михаил Непряхин: а ну? Вот это Проснулась бай это я уже Рассказал что
Михаил Непряхин: очень легко переводится сласть байты в строку и Строки в лайсбайты и У копии Есть специальный кейс
Михаил Непряхин: когда Мы можем копернуть Прям Вот Вот это У нас лайт, а здесь можем прямо просто страху указать ну Типа для Удобства
Михаил Непряхин: и ну Только проблема. Смотрите здесь в чем вот У нас длинная новика Пасе и соответственно вот этого свайса она равна трем тут три элемента
Михаил Непряхин: и и
Михаил Непряхин: вот Поэтому как бы
Михаил Непряхин: не важно помнить ну? Если вы будете много Работать Копией То Уж Наверно вы Там Проверите Все кейсы как Оно себя ведет
Михаил Непряхин: я Еще Раз, говорю Я скопит просто вообще Не работаю то есть Я Не очень понимаю в каких каких Кейсах это нужно
Михаил Непряхин: так
Михаил Непряхин: давайте посмотрим
Михаил Непряхин: аа если Не терроризировать Тремя нолями какую-нибудь ембот ну три три
Михаил Непряхин: лилин вот три капасти три
Михаил Непряхин: так сортировать свалить свои функции, или Сахар есть Сахар есть недавно завезли
Михаил Непряхин: слайс
Михаил Непряхин: слайсес
Михаил Непряхин: сорт,
Михаил Непряхин: против тебя просто кидаете и Оно сортирует
Михаил Непряхин: вот но если нужна какая-то ну. Да ну. Это Там ка основная Сортировка для структур, а в Принципе Эти,
Михаил Непряхин: свайс Сейчас вот сахар, слава богу завезли для сортировки опять. Же Сортировка свайсов
Михаил Непряхин: дорогая Функция потом Редко используется
Михаил Непряхин: ну, понятно, что травка недешевая
Михаил Непряхин: так
Михаил Непряхин: здесь вопросов, пока я думаю Нет да здесь пока все понятно,
Михаил Непряхин: да вот самая Жесть. Вот Она вот Она Жесть. Работа, когда мы
Михаил Непряхин: хотим, получить, вью какое то вот
Михаил Непряхин: странные когда мы хотим, Допустим у нас Есть слайс
Михаил Непряхин: мы его заницировали
Михаил Непряхин: значит что мы можем с этим с лайсом сотворить
Михаил Непряхин: ну во-первых мы можем его просто скопировать
Михаил Непряхин: таким вот образом просто взять этот вальс на ключе взять все вот этот синтекс двоеточие он нужен, для того чтобы сказать как Нарезать слайс
Михаил Непряхин: значит
Михаил Непряхин: Ну надо нервы начинать с этого объяснять Сейчас какую-нибудь вот с этого Примера Давайте
Михаил Непряхин: значит такая задача значит Мы Хотим, взять
Михаил Непряхин: Сейчас я сам сам боже чем тут берем
Михаил Непряхин: синтакси Читается Так
Михаил Непряхин: значит возьми им
Михаил Непряхин: слайс юзерс
Михаил Непряхин: Окей мирон с вайс визерс
Михаил Непряхин: значит и
Михаил Непряхин: возьми у него,
Михаил Непряхин: элемент с индексом Два
Михаил Непряхин: смотри. Какой у нас элемент синтеза с индексом два вот кейт у нас кейт индексом два
Михаил Непряхин: да и
Михаил Непряхин: возьми,
Михаил Непряхин: элемент с индексом шесть вот у нас майк с индексом Шесть! То есть возьми,
Михаил Непряхин: вот Эту область.
Михаил Непряхин: Но
Михаил Непряхин: значит
Михаил Непряхин: вот этот! Вот первый индекс
Михаил Непряхин: откуда начинается
Михаил Непряхин: он включительно
Михаил Непряхин: а вот этот вот индекс он исключительно
Михаил Непряхин: то есть как бы тут надо запомнить вот это включительно это исключительно в крымувыкл
Михаил Непряхин: значит мы берем не вот так вот
Михаил Непряхин: не по шестой включительно а по шестой исключительно то есть мы возьмем вот так вот
Михаил Непряхин: то есть вот здесь вот внутри
Михаил Непряхин: Мы будем Иметь вот такой вот слайс
Михаил Непряхин: то Есть начиная со второго Элемента включительно по шестой исключительно
Михаил Непряхин: то Есть
Михаил Непряхин: удаляем вначале элементы вити боплес Мы удалили и Мы удалили майки Роберт
Михаил Непряхин: а и
Михаил Непряхин: этот синтаксис Это значит что возьми с Ноля То Есть что вот эта вот ноль что вот Это вот Это одно, и то же то есть возьми, с самого Начала
Михаил Непряхин: по четвертый, элемент
Михаил Непряхин: вернеепо элемент с индексом Четыре но исключительно то Есть Мы берем с самого Начала
Михаил Непряхин: доходим до четвертого элемента но он исключителен Поэтому у нас вот здесь будет
Михаил Непряхин: а вот это Вот
Михаил Непряхин: и то же самое в конце значит Мы говорим Возьми с третьего Элемента включительно то Есть Отсюда Возьми и До конца
Михаил Непряхин: то Есть если ничего мы не указали то это будет до конца где же у него конец вопрос интересный потому что если вот это вот значение исключительно
Михаил Непряхин: то если мы возьмем до седьмого
Михаил Непряхин: то это будет
Михаил Непряхин: до седьмого доходим но седьмой исключительно то Есть это будет вот такой кусок
Михаил Непряхин: слайса
Михаил Непряхин: Поэтому если Мы хотим, понять Что как оно выглядит вот это когда ничего Нет здесь восьмерка
Михаил Непряхин: то есть вот три восемь
Михаил Непряхин: это будет ээ вот так вот это то же самое что три и ничего
Михаил Непряхин: то есть вот этот вот синтаксис двоеточие он Нужен вот для обрезки,
Михаил Непряхин: и Концов
Михаил Непряхин: либо взять все Сначала для какого-то Элемента Но второй элемент. Он исключительно либо Взять какого-то до конца
Михаил Непряхин: А ну Это Будет отключительно То есть короче сам могла начать запомнить вот это включительно это исключительно и когда какие такие задачи попадаются нумеруете прямо, так вот элементы индекс
Михаил Непряхин: и прям вот размышляете так
Михаил Непряхин: смотрим два включительная
Михаил Непряхин: шесть доходим на шесть исключительно, вот такой кусок у нас в памяти получается
Михаил Непряхин: что еще тут, можно Какие Все варианты Какие могут Быть
Михаил Непряхин: Ну Берем Все Берем Все с самого Начала Берем до Конца Таким образом Можно Из Массива. Сделать вайс если У нас есть массив Мы можем вот от на массиве этот синтаксис
Михаил Непряхин: она тоже работает
Михаил Непряхин: просто результат этого
Михаил Непряхин: действие будет Новый и
Михаил Непряхин: и и
Михаил Непряхин: я Помню Там оговорился Для этого говорил что массив под капотом несменяемой копаете его Массива неизменяемая Но элементы они изменяемые Внутри
Михаил Непряхин: значит это возьми с ноля включительно
Михаил Непряхин: и доноля
Михаил Непряхин: исключительно
Михаил Непряхин: то есть ничего то есть возьми первый элемент включительно но если, опять. Же Ноль значит исключительно и ну как бы вот возьми, ничего возьми, слайс на пустой массив
Михаил Непряхин: здесь с первого Элемента возьми, Включительно
Михаил Непряхин: но по первый Исключительно опять. Же пустой массив ну То есть как Бы вот Это Тоже насобезар Любят Спрашивать такое вот дермище Уже в жизни-то как Бы вот Этого вообще в Принципе Не используется и уж на нгу редко бывает такое надо вот а вот на собеседник любят Спрашивать
Михаил Непряхин: но опять же если прямо вас зачем-то мучают потому, что на синьорных совбезах это уже думаю не спрашивают на си нервных собеседников Там просто
Михаил Непряхин: да задача на гурутину задачу на Канал и все Мы Погнали дальше то есть короче говоря
Михаил Непряхин: и если не можете пройти совместно Мидва Проходите на синей Рад Там все сильно легче
Михаил Непряхин: Так ну главное вести себя по увереннее конечно
Михаил Непряхин: здесь мы берем все сначала
Михаил Непряхин: и по первый элемент.
Михаил Непряхин: Исключительно это значит мы возьмем Только первый боб
Михаил Непряхин: ну и короче вот вот вот можете тут сами и тренироваться берем седьмого элемента где седьмой момент вот седьмой элемент до конца ну Окей значит У нас тут Будет роберт
Михаил Непряхин: возьмем седьмого Индекса
Михаил Непряхин: опять, же до конца наконец У нас это восьмой и вот У нас это
Михаил Непряхин: тоже самый роберт если Мы тут сделаем Анну вот я тут делаю Девять возьми с самого Начала по девятый элемент то тут будет паника вронтайме что мы вышли. Что у вас копайте блин
Михаил Непряхин: капасети восемь а ты выходишь за границу в копасти но это проверка только в фронтаме
Михаил Непряхин: ну! И здесь то же самое повод скажут я Не, Могу взять начиная с девятого Элемента Включительно
Михаил Непряхин: потому что Блин его Нет
Михаил Непряхин: вот с восьмого то я Могу
Михаил Непряхин: взять
Михаил Непряхин: то есть Как Бы смотрите восьмой Элемент он тут фантомный Как Бы он тут есть да То есть восьмой
Михаил Непряхин: ага не Видно
Михаил Непряхин: Джаз
Михаил Непряхин: вот восьмой элемент Он здесь как бы вот
Михаил Непряхин: как будто Есть
Михаил Непряхин: и Почему Он тут появляется
Михаил Непряхин: потому что Исключительно, как взять Последний элемент
Михаил Непряхин: если, он блин вот этот синтез, если, он исключает ну вот придумать что там есть Еще восьмой вот и это тоже как бы из приколов что могут нас собейся если вас сильно мучают спросить потому что тоже как бы не очевидны Вы такие как бы
Михаил Непряхин: читайте возьми индекс седьмого элемента по индекс восьмого элемента
Михаил Непряхин: вернее индекс восемь но индекс возим ведь Нет это за границей.
Михаил Непряхин: Но в этом случае он есть и даже более того даже если вы его первым используете вот как читается вот эта штука что типа возьми и
Михаил Непряхин: элемент с индексом восемь
Михаил Непряхин: по элемент с индексом восемь
Михаил Непряхин: вы такие элемент с индексом восемь он где у меня есть элемент только с индексом семь а вот на самом деле элемент с индексом восемь он вот здесь невидимый и вы можете взять с него.
Михаил Непряхин: Включительно. Про него. Исключительно. Ну Или даже вот так вот до конца вот То же самое что вот восемь восемь и У вас просто будет пустой слай святой
Михаил Непряхин: вот это очень веселый индекс который вот ну, только вот щупать смотреть и вот пытаться ну, вот как, я сказал читать Включительно Исключительно
Михаил Непряхин: ну, этот пример мы Смотрели
Михаил Непряхин: Да прокопаюсь я Сейчас тоже Скажу Давайте посмотрим чего Там вопросы? Какие То появились
Михаил Непряхин: Давайте если есть вопрос Или тут? Можете Голосом тоже задать
Михаил Непряхин: Капассити восемь лен пять
Михаил Непряхин: свайс ноль восемь
Михаил Непряхин: и так можно сделать
Михаил Непряхин: он просто Тамбудировал,
Михаил Непряхин: То есть вы заглядываете за
Михаил Непряхин: лен
Михаил Непряхин: ну там будут просто. Зеровые если это у вас инты там просто. Будут нули
Михаил Непряхин: Ну, да Так можно
Михаил Непряхин: Так можно
Михаил Непряхин: и Поэтому Еще тоже как бы не любят ну какого черта но ведь в кошке все инициализировано там нули будут если это и если это Строги будут но там будут пустые строки
Михаил Непряхин: Да можете потренироваться так можно так юзерс ноль лен юзерс плюс один
Михаил Непряхин: ну Да но это то. Же самое получается выбирать ленюзерс
Михаил Непряхин: допустим как здесь да у меня, здесь восемь элементов
Михаил Непряхин: лен юзерс здесь у вас будет, восемь плюс один
Михаил Непряхин: девять а ну Нет Не. Получится, так то есть вы здесь выйдете за границу
Михаил Непряхин: будет ошибка Что вы обратитесь вот к Этому девятому которого нет
Михаил Непряхин: Значит
Михаил Непряхин: еще
Михаил Непряхин: еще еще Так. Сейчас.
Михаил Непряхин: Ага ну ограничить да по ограничению с вайсом
Михаил Непряхин: недавно добавили синтаксис
Михаил Непряхин: значит и
Михаил Непряхин: показалось мало одного двоеточие значит есть возможность Добавить еще Одна двоеточа
Михаил Непряхин: значит чего это нахрен за такое
Михаил Непряхин: объясняю значит смотрите какая есть Проблемка
Михаил Непряхин: вот Мы имеем слайс из трех элементов боб элис кейт
Михаил Непряхин: Ну тут лен три Капасити три
Михаил Непряхин: Мы хотим! Чего Мы тут хотим! Берем с нулевого элемента включительно то есть боба по второй элемент исключительно Второй элемент У нас кейт ну, Индекс на Второй
Михаил Непряхин: кейт Мы получается берем Боб и элис
Михаил Непряхин: в итоге Мы имеем здесь
Михаил Непряхин: слайс еще один
Михаил Непряхин: копию
Михаил Непряхин: под капотом будет указатель на тот же Изначальный массив который здесь был
Михаил Непряхин: а но отличие в том что длина у Него будет Два
Михаил Непряхин: потому что, у нас там будет вью вот только вот на эти первые два элемента
Михаил Непряхин: а к опасности ты было три
Михаил Непряхин: и вот как писал Тут ильяс То есть Мы же можем ну Там Заглянуть под капот да То есть
Михаил Непряхин: Давайте Сша
Михаил Непряхин: все
Михаил Непряхин: гм антон пол
Михаил Непряхин: ну ты я сам тут сделал да Но Давайте чтоб Не было ты ошибки
Михаил Непряхин: с Делом закомментировал.
Михаил Непряхин: Начнут смотреть У нас Ленд два Капасти два посмотрим что там
Михаил Непряхин: юзерс
Михаил Непряхин: юзерс юзерс один
Михаил Непряхин: как смотрим юзерс вот у нас бо полис кейт юзерс один
Михаил Непряхин: амбу пэлис
Михаил Непряхин: вот и тут значит я делаю хак грязный фак
Михаил Непряхин: Я Беру и говорю Что значит копайте
Михаил Непряхин: Я увеличиваю до трех Внезапно
Михаил Непряхин: Бах
Михаил Непряхин: и Я получаю доступ
Михаил Непряхин: к Этому
Михаил Непряхин: а элементу
Михаил Непряхин: который ну как бы я же ведь неспроста
Михаил Непряхин: Указал что я хочу ограничить Справа то есть мне кейт не нужна я хочу только боба и элиса я этим синтаксис указал но черт побери ведь Копайте там осталось емкости три а значит я могу взять и расширить
Михаил Непряхин: Ну слово если я сделаю Четыре конечно я тут получу что я выхожу копачить ссылайся под капотом три а я тут как бы указываю вообще на четвертый индекс
Михаил Непряхин: как бы и тут и Так, то третий был то есть если тут по индексам взять да отрестану да еще видите Путаница Что это же вот Индексы здесь Что то нулевой индекс
Михаил Непряхин: первый индекс
Михаил Непряхин: второй индекс
Михаил Непряхин: третий индекс вот я говорю значит четвертого тут, точно Нет Поэтому У Меня, ошибка вот а третий пожалуйста, Я, говорю до Третьего исключительно то есть возьми все до конца
Михаил Непряхин: вот типа нехорошо подумали Разработчики. Такие Давайте значит Ммм придумаем способ, как все Таки. Вот этот кпасть и тоже Сделать два если. Вдруг Человек хочет
Михаил Непряхин: аа и значит ничего Не придумали лучше чем добавить Еще одно, твоеточие
Михаил Непряхин: и значит как Это, читается значит Возьми
Михаил Непряхин: создай слайс юзерс два из салайса юзерс вот из-за этого изначального значит возьми Начиная с нулевого элемента индекса? С нулевого индекса? По второй индекс но второй индекс исключительно значит что возьми только первые два Элемента
Михаил Непряхин: и сделай Так чтобы Копассити Тоже, уменьшилась чтобы к Пасе Тоже, было два
Михаил Непряхин: и здесь Мы получаем
Михаил Непряхин: вот этот жеванный значит результат когда у нас копайте тоже два
Михаил Непряхин: и если, вдруг здесь мы тоже захотим сделать этот хак который до этого мы тут делали
Михаил Непряхин: так кризис два
Михаил Непряхин: Так ну вот значит вот Мы делаем тут тот же самый,
Михаил Непряхин: хак
Михаил Непряхин: вот то хотя бы
Михаил Непряхин: ошибка чтобы была шубы нельзя было так Сделать
Михаил Непряхин: сидите как бы вот мы тут в первом случае спокойненько взяли и Получили Доступ к элементу
Михаил Непряхин: который в массиве-то он Есть но черт побери как будто бы я Не хотел бы чтобы к нему так легко можно было получать доступ мало ли там чего
Михаил Непряхин: и и
Михаил Непряхин: этот
Михаил Непряхин: но вот как бы с Помощью вот этого синтаксиса Вью новое получаю и плюс все-таки я там делаю ограничение на копаассе и если, вдруг кто-то захочет вскрыть посмотреть что там было он не сможет это сделать потому что я
Михаил Непряхин: илен
Михаил Непряхин: подрезал справа
Михаил Непряхин: и к опасности тоже подрезал справа
Михаил Непряхин: да конечно я не изменю изначальный
Михаил Непряхин: массив который там был под капотом
Михаил Непряхин: и если Вдруг я здесь возьму и элис
Михаил Непряхин: давайте на что и тут поменяем
Михаил Непряхин: и и
Михаил Непряхин: какая Сейчас
Михаил Непряхин: юзерс два элис У, нас первый элемент
Михаил Непряхин: а равен
Михаил Непряхин: икс
Михаил Непряхин: вот и после этого
Михаил Непряхин: всех хочу прочитать
Михаил Непряхин: а юзер, связи. Раз, один юзерс два
Михаил Непряхин: включи я Тоже Так не могу сделать
Михаил Непряхин: то есть видите как бы мое Изменение оно видно во всех слайсах то есть вот у меня, юзерс есть свайс
Михаил Непряхин: которые ссылаются на изначальный вот этот вот массив есть узерс Один он тоже срывается изначально от массив есть узерс два он Тоже ссылается изначально из массив
Михаил Непряхин: и если мы делаем изменения ну вот меняем второй элемент он во всех Наших Вью Во всех Наших слайсах он Поменяется Потому что
Михаил Непряхин: он там один Но Тем Не менее зато хотя бы я Не Имею вот доступ к этому третьему элементу когда делаю такую подрезку
Михаил Непряхин: вот Мы про это больше вообще разговаривать не Будем просто вот один Раз я вот этот про это рассказываю что это есть жену лауре очень. Супер редкое явление синтези снова и вообще как бы вот просто как бы Знаете что оно такое бывает
Михаил Непряхин: вот Ну и здесь Еще Понятно, что с Помощью этого можно удалить элемент. Хотим? Мы допустим удалить значит чем мы берем с Помощью опента как удалить
Михаил Непряхин: а мы говорим возьмися сначала до первого но исключительно значит Возьми тома
Михаил Непряхин: и добавь к тому
Михаил Непряхин: начиная со второго элемента и до конца
Михаил Непряхин: ну и в Отеле тут получается Что Удаляется
Михаил Непряхин: вот ну и соответственно
Михаил Непряхин: первый элемент он тоже Удаляется
Михаил Непряхин: значит смотрите вот мы тут
Михаил Непряхин: от удалили получили томи кейт
Михаил Непряхин: ой прини сюда к перо
Михаил Непряхин: сюда хочу
Михаил Непряхин: да и
Михаил Непряхин: он получили томи кейт то есть удалили элемент
Михаил Непряхин: вот Но Если бы даже Мы Это делали
Михаил Непряхин: Куда, то Там в третий свайс
Михаил Непряхин: кто
Михаил Непряхин: изначальный свайс
Михаил Непряхин: а когда Мы смотрим
Михаил Непряхин: оон остался прежним
Михаил Непряхин: потому что,
Михаил Непряхин: Мы и
Михаил Непряхин: а взяли здесь
Михаил Непряхин: и создали Другой,
Михаил Непряхин: точнее давайте Сейчас твой стимул,
Михаил Непряхин: и взяла
Михаил Непряхин: смотрим на
Михаил Непряхин: юзерс
Михаил Непряхин: на изначальный на юзерс два
Михаил Непряхин: Изначальный остался аа как есть
Михаил Непряхин: и мы с помощью аппенда создали другой массив
Михаил Непряхин: в котором есть
Михаил Непряхин: ой Нет я туплю туплю
Михаил Непряхин: все Мы его Удалили
Михаил Непряхин: ничего Мы Не создали Это То здесь Тоже Гонко данных происходит Мы видим
Михаил Непряхин: ключе в этом случае Мы Тоже Получили тот же самый. Свайс
Михаил Непряхин: Меня тут витя.
Михаил Непряхин: А мотив под Капотом остался тот же тут кейт кейт если Мы на Него посмотрим Что Там То Там просто два раза кейт да
Михаил Непряхин: если Мы возьмем до конца
Михаил Непряхин: с Рэмп вот кейт кидс короче говоря
Михаил Непряхин: эти, все аа случаи вот они запутаны тем Что короче
Михаил Непряхин: нужно отличать вот где Мы Там
Михаил Непряхин: А изначальный массив меняем А где У нас Там произойдет провокация потому, Что апэнте. Он Еще может добавляет он может создать, локацию и они разъедутся и будут разные и
Михаил Непряхин: давайте. Так вопросы, Пока хотя бы то что я показывал здесь какие то Вопросы, есть
Михаил Непряхин: так так получается конструкция свайской первый свайс непонятно почему сразу не Создается новая с райской пости два
Михаил Непряхин: Так вот сделали Так сделали что,
Михаил Непряхин: оно Создается новые Только если переполнение Старого
Михаил Непряхин: если Переполнения Старого Нет То Новый Не Создается
Михаил Непряхин: и вот Это, вот тоже на совбезах вот этот Весь тот же случай, надо
Михаил Непряхин: отличать
Михаил Непряхин: ээ если, есть переполнение к опасности То, создастся правда новый Или они разъедутся а если Нет вот гонка данных Будем будет оба слайса иметь. Вью на Один. И тот же массив
Михаил Непряхин: можно прорвать разностоев наверно да опять же Не подскажу проран сейф Там вот это У Богубо У нас посмотреть лекции про нацеев я два раза уже Не помню
Михаил Непряхин: вибриксмена
Михаил Непряхин: так
Михаил Непряхин: Давайте давид.
David R: А вот тут есть уточнение, хотел бы голосом немного сказать вот пример который я Сейчас понатыкал и вот что он выдает если Мы в б присваиваем средств По слайству Там
David R: только один элемент он получается его выводит Там один элемент а потом можно его расширить в том же слайсе вот это вот да
David R: давайте работает очень
David R: интересно.
Михаил Непряхин: Так хорошо Есть У нас восемь. Элементов Да
Михаил Непряхин: Так Мы Что Мы Делаем значит Мы Берем с нулевого индекса? Включительно то есть мы берем с первого
Михаил Непряхин: по первый индекс
Михаил Непряхин: первый индекс вод
Михаил Непряхин: исключительно значит мы возьмем только единицу
Михаил Непряхин: мы делаем копию создаем Новый слайс это новый свадеб просто под капотом он указывает на этот же мотив смотрим Единица Окей.
David R: Это и.
Михаил Непряхин: Хорошо Берем и.
David R: И тут получается когда Мы берем Срез посалайсу у нас новые слайс это
David R: тот же самый старый слайс но с ограничением на отображение указанных элементов и.
Михаил Непряхин: Да да.
David R: Все взяли Праля.
Михаил Непряхин: Да верно. Но только не лучше думать, не на старый слайс а на старый массив который
Михаил Непряхин: да-да-да верно. То есть ну, если, бы тут фигнули ограничения вот так вот конечно мы бы тут не смогли так сделать да только то что объяснял.
Михаил Непряхин: Паника была бы и просто важно понимать что и.
David R: И тут. Вопрос когда мы берем с резы посылайсу какой это имеет, практическое значение Если мы это Если мы не делаем дополнительное копирование То это получается как Будто бы какая-то Сломанная штука которая
David R: с Помощью которой. Можно себе. Выстрелить в колено
David R: а если бы Мы отобрали бы срез по слэпсу и дополнительно делали бы копии чтобы это скопировалось полностью и отвязалось от Старого с лайся вот тогда понятно Что может быть какой то еще Смысл но вот в данном, виде Это получается Мы просто стреляем себе, в колен.
Михаил Непряхин: Да и По Сути это основная претензия к Гоу как гну такая самая большая что
Михаил Непряхин: ну вот ролик он недавно вышел То что Там сравнивают тепарасты гол, что типа власти такое невозможно а в год такое сделали посмотрите за эту фичу отвечает. Конкретно ответственность несет Конкретно
Михаил Непряхин: гаи
Михаил Непряхин: ой не гай ричи клинтон Второй это был зовушек Ни кернивин блин забыл. Имя ну кроме того три чувака было вот Это тот чувак который греб сделал который сии второй автор
Михаил Непряхин: и он
Михаил Непряхин: аа вот Ему зачем-то нравится, вот вот такая работа со слайцами То есть ему это не хватало все он жалел о том что он это не сделал все и он это привнес в
Михаил Непряхин: гол
Михаил Непряхин: и и
Михаил Непряхин: то есть как бы Видите очень большой френворк возможности прямо, дофига ну то есть как бы казалось бы зачем нам такое в обширное апе для вью насвайс
Михаил Непряхин: Ну, вот по моему опыту я это помощи, ни разу не, использовал в продакшне пом просто ни разу
Михаил Непряхин: и копии ни разу не используют в продакшн потому что Всегда и
Михаил Непряхин: Можно заюзать и использовать то ли Я чего не понимаю и как то Я не нашел. Применения тому где это можно Использовать
Михаил Непряхин: ну вот Раз такое Раз такая возможность У языка есть
Михаил Непряхин: значит ее обязательно кто то будет юзать
Михаил Непряхин: и совершать ошибки Потому Что чтобы до конца в Этом Разобраться и
Михаил Непряхин: и это просто колоссальный Простор для Выстрела в ногу и Именно Поэтому Так мучают, Этим вопросом на собесах
Михаил Непряхин: вот Э Поэтому Грубо, говоря просто вот один Раз более-менее надо понять как, оно Устроено и хотя бы когда вы будете читать код вы здесь Даже не будете помнить
Михаил Непряхин: но вы как-то грубую какую-то ошибку все равно не совершите потому Что вы понимаете да вы можете двигать эту рамку да может возникнуть гонка данных с Аппендом Там Еще есть случай. Когда все-таки Разъезжаются с вайсы.
Михаил Непряхин: Когда там идет, превышение То они могут разъехаться и тогда даже вы будете менять аполлон ки данных не возникнет но вот этого Все. Держать в голове помнить об этом Нафиг Это надо ну вот Это уже есть языки Это вот такой и
Михаил Непряхин: прикол с которым приходится мириться Она очень много вопросов к работе с лайсами и У многих. Вызывает Недоумение.
Михаил Непряхин: И к сожалению. Же приходится это учить и приходится знать
Михаил Непряхин: а если указали три параметра ноль Два Два Ну то Есть Мы говорим с нулевого
Михаил Непряхин: по второй Это значит Мы берем первые Два Элемента и к опасности Тоже, Режем до двух
Михаил Непряхин: уменьшайка Пати это уже будет Всегда новой Мысли в памяти Не-не-не Нет это не То Что Всегда будет Никогда не будет, нового. Всего в памяти вы просто смотрите же нет же проблемы подрезать предыдущий массив вот у нас оригинальный массив вот такой ну вы взяли его и сказали вот я делаю ограничения вот я хочу его вот так вот видеть наверняка в вашем случае вы говорите с нулевого
Михаил Непряхин: включительно по второй исключительно а вот нас второй значит Мы берем вот это вот и вот Мы получим Что У нас копаасить будет
Михаил Непряхин: два будет лен- два и копасть эти два и как бы Мы просто получаем дополнительную гарантию что уже никто Там за нее не выйдет то есть видение изначально дали много свободы и вот теперь совсем недавно это синдкс не завезли теперь думают как будут все-таки ограничить это чтобы люди не Так сильно стреляли в ногу
Михаил Непряхин: вот короче Это отвечая на вопрос никогда не будет Нового массива Это будет тот же самый массив когда мы так делаем
Михаил Непряхин: получается Новый массив только когда увеличем копасти да там спойлер Новый массив возникает только при аппенде то есть он может возникнуть Только при аппенде
Михаил Непряхин: и Только тогда когда лен равно копаете вот и
Михаил Непряхин: ну давайте давайте покажу давайте покажу пример а задержались, над темой Прям капец тупецкапец Важная и Сложная
Михаил Непряхин: У нас
Михаил Непряхин: значит Вот Примерчик,
Михаил Непряхин: берем
Михаил Непряхин: по Литературе создаем четыре элемента
Михаил Непряхин: создаем анонимную Функцию, Ну, просто это сделал для красоты чтобы не в глобальной Области видимость эту Функцию заводить значит эта функция принимает
Михаил Непряхин: слайс интов
Михаил Непряхин: и просто его Печатает берем эту Функцию Ну и печатаем собственно наши инты
Михаил Непряхин: дальше говорим
Михаил Непряхин: что нулевой элемент
Михаил Непряхин: а равен нулю то есть вот этот вот заменяем на ноль
Михаил Непряхин: и и
Михаил Непряхин: снова, печатаем
Михаил Непряхин: ну здесь короча
Михаил Непряхин: Идея в том что когда Мы здесь эту Функцию на ними создаем Мы вот туда слайс скопировали
Михаил Непряхин: и и
Михаил Непряхин: а ну здесь я его снова это же Не Замыкание,
Михаил Непряхин: вот ну проще здесь просто произойдет Изменение все нормально было да то есть смотрите как бы ну ну поменяли и поменяли карчу нету сюрприза все Окей
Михаил Непряхин: короче здесь Будем один два три четыре напечатали поменяли первый элемент но он стал ну. И
Михаил Непряхин: то смотрите какая ситуация, то Же самое только аппенди
Михаил Непряхин: а у нас здесь лен четыре капасти четыре
Михаил Непряхин: печатаем ну. Увидится один двадцать четыре Да Добавляем Один. Элемент
Михаил Непряхин: Но у нас лен уже равно копаете значит произойдет
Михаил Непряхин: реалокация
Михаил Непряхин: и из Предыдущего. Массива Все. Скопируется в Новый и это Был Совершенно Другой массив
Михаил Непряхин: и здесь Мы уже напечатаем
Михаил Непряхин: Один два три четыре Пять
Михаил Непряхин: а и
Михаил Непряхин: я же забыл. Что ты хотел сказать
Михаил Непряхин: а Блин это же я и задачу взял
Михаил Непряхин: Так но Сейчас. Эс это да Сейчас. С
Михаил Непряхин: это уже Другой, слайс
Михаил Непряхин: Так надо сделать войс два вот Так вот с два
Михаил Непряхин: печатаем
Михаил Непряхин: вот
Михаил Непряхин: теперь, теперь, Мы меняем вест два
Михаил Непряхин: Нулевой элемент на ноль
Михаил Непряхин: и опять, печатая мысль два
Михаил Непряхин: и печатаем нас Один
Михаил Непряхин: ну так ты х съесть два
Михаил Непряхин: и короче говоря как будто бы аа ну вот такие задачи на подвох есть как Будто бы Мы будем видеть Одно, и То же но на самом деле Нет когда вот Мы сделали аппенд они разошлись
Михаил Непряхин: и поэтому прежний с он не поменяется
Михаил Непряхин: аа вс- два вот оно занурится
Михаил Непряхин: смотрите прежний он не поменялся
Михаил Непряхин: а вот в новом он занурился
Михаил Непряхин: именно потому что мы сделали апент
Михаил Непряхин: и вот это уже теперь совершенно разные массивы
Михаил Непряхин: если, мы будем менять вот этот второй
Михаил Непряхин: ну. Все они очень разные то, Есть и вот этого слайса оно вообще абсолютно на другой массив
Михаил Непряхин: и вот короче вся Идея в Том что нужно от
Михаил Непряхин: вот потренироваться решать вот эти задачи и отличать случаи вот когда происходит
Михаил Непряхин: м-м гонка данных когда Мы вот смотрим на Один, и тот же массив
Михаил Непряхин: никогда ее не происходит
Михаил Непряхин: и Вот все все все задачи Нет тут построены Вот вокруг этого просто с разными вариациями тут функцию передали тут-то сделали пэн здесь Не сделали а Пэнт и вот Так вот все здесь вот такое вью посмотрели здесь Так посмотрели здесь букву подрезали
Михаил Непряхин: вот
Михаил Непряхин: но даже если вы неправильно решаете да вот это вот если вы просто вот читаете и размышляете правильно считаете Что это все равно если даже там ошибетесь немножечко ничего Страшного главное чтобы размышлять правильно
Михаил Непряхин: так получается новый мысли только когда увеличиваем копати
Михаил Непряхин: да да новые моси возникает тогда когда лен уже равен к опасности добавлять некуда а Мы делаем о пент.
Михаил Непряхин: Свадьба это в юности спасибо много чего объясняет да
Михаил Непряхин: Запомните это
Михаил Непряхин: а получается Ссылка Тоже Не меняется
Михаил Непряхин: указатель
Михаил Непряхин: ну. Если
Михаил Непряхин: ну. Сымок Нет Да Есть Указатели если Мы аппенди Мы здесь указатель поменяется это же будут разные массивы и указатели будут на разные массивы при этом случае указатель поменяется
Михаил Непряхин: а если лен будет не четыре в вашем примере
Михаил Непряхин: аа тогда все нормально Будет Давайте сделаем или Не четыре
Михаил Непряхин: а три да Допустим лена Не четыре а три
Михаил Непряхин: Мы Не Таким Образом создадим слайс а
Михаил Непряхин: скажем слайс вот здесь его создадим
Михаил Непряхин: скажем мейк слайсинтов и
Михаил Непряхин: лен его
Михаил Непряхин: три
Михаил Непряхин: капастити четыре
Михаил Непряхин: и скажем
Михаил Непряхин: так вот
Михаил Непряхин: что с равен
Михаил Непряхин: вот это Вот Вот Сейчас лен будет три капастики четыре
Михаил Непряхин: а Сейчас Мы добавим Пятый? Элемент
Михаил Непряхин: ну? И все не, произойдет локация это будет один и тот же элемент мы тут поменяем и тоже изменится везде такой Прогноз
Михаил Непряхин: Так выводим
Михаил Непряхин: один два Три делаем эпент добавили пятерку
Михаил Непряхин: выводим изначальный
Михаил Непряхин: а он изначально мой равен
Михаил Непряхин: так ну мы тут поменяли нулевой элемент
Михаил Непряхин: так зараза видите как бы, ээ чего то я тут не, учел,
Михаил Непряхин: что ты тут не учел
Михаил Непряхин: потому что вывилось не то что я ожидал
Михаил Непряхин: я же тут в нулевом занули элемент
Михаил Непряхин: а вывожу первый изначальный
Михаил Непряхин: а он и
Михаил Непряхин: неизменный
Михаил Непряхин: а этот измененный
Михаил Непряхин: правильно все понимаю да вот я
Михаил Непряхин: э здесь поменял Нулевой
Михаил Непряхин: м
Михаил Непряхин: так
Михаил Непряхин: ну я неправильно сделал да я тут. Просто его переопределил
Михаил Непряхин: Так Так Не прокатит Сейчас э
Михаил Непряхин: руками давайте эти добавим алименты Сейчас значит Сделаем
Михаил Непряхин: Нулевой индекс У нас один кажется, там просто я пересоздал его вот вот надо вот правильно вот Так вот сделать вот в этом случае все будет Окей значит здесь у нас лен будет вот в этом месте уже
Михаил Непряхин: лен будет три а кпасть будет четыре потому Что Мы Изначально с Четырьмя создали да Так вот
Михаил Непряхин: все теперь сработает теперь делаю пент Ну и все что с предсказуемым Поведением будет то Есть Мое предсказание да Сейчас вот Здесь вот ноль
Михаил Непряхин: М
Михаил Непряхин: Черт Закопт надо это делать господи
Михаил Непряхин: так тоже не канает потому, что там же у меня ноль час
Михаил Непряхин: один
Михаил Непряхин: Два.
Konstantin: Но мне можно было на троечку, оставить вместо нуля это да сработал.
Михаил Непряхин: Ну Там Налибыли бы а хочется, же занурить вот так. Оно сработает вот короче Ммм
Михаил Непряхин: просто, Если, Мы эту Рочку бы сделали
Михаил Непряхин: то Там бы и так нули изначально были бы Мы бы сравнения этого не увидели тогда бы здесь надо было в единицу записать Так Вот ты на выуде ну короче вы видите да суть что это Один и тот же массив в этом случае под капотом и при аппенди не произошло и
Михаил Непряхин: локации потому что было место,
Михаил Непряхин: а вот если бы не было
Михаил Непряхин: то и
Михаил Непряхин: тут, будет Единица а тут,
Михаил Непряхин: а тут вот Единица здесь уже останется да вот где тут ноль тут единицы короче вот Ммм вот чтобы вот с Этим разобраться,
Михаил Непряхин: приходится само крутить вот это вот пробуйте запускаете
Михаил Непряхин: и и
Михаил Непряхин: как бы пытаетесь понять как оно себя ведет то есть здесь только вот много много запусков, и много вот этих разных примеров
Михаил Непряхин: то же самое с нарезкой вот пробуйте так нарезайте пробуйте сяк нарезайте и главное проверяете лены копайте то есть э просто Всегда сомневаетесь мы грубо говоря читаете код ага. Здесь у нас лен четыре копасти четыре
Михаил Непряхин: потом опять, здесь смотрим а здесь какой Ленка пасти и пытаетесь прикинуть и когда решаете эти задачи тоже справа пишите комментарии в каком состоянии Сейчас. И
Михаил Непряхин: Так
Михаил Непряхин: указатель тот Же но ключительный Интернет лена ограничивается указанным на резких каб тоже остается отперузываться
Михаил Непряхин: так Как все плюс плюс попало иногда лучше об Этом не думали ну да-да-да типа как сиси какое-то ну единственное что конечно тут анджелина джоли не может быть потому что все-таки как бы безопасно язык, Но Вот это Вот что-то близко
Михаил Непряхин: так ладно короче
Михаил Непряхин: надеюсь Что что-то все равно У вас осталось с Этой, Лекцией и что-то вы поняли вот в следующий Раз, тут, можете еще заранее вот это вот там посмотреть и задачки эти посмотреть примерно
Михаил Непряхин: а
Михаил Непряхин: то есть как бы чтобы в следующий Раз, когда тут мы Будем про пэнту осуждать чтобы у вас что-то Уже в голове было чтобы ну на какую-то еще базу, ну что-то руками надо запускать
Михаил Непряхин: вот и ну все все тогда Давайте до следующего раза всем. Пока.