Присоединяйтесь к моему каналу в Телеграм: t.me/vladimir_balun_programming
@Albert-nc1rj4 ай бұрын
Пожалуй лучшее видео про слайсы и массивы в Go на ютубе, даже на англоязычном ютубе ничего такого не видел)
@vladimir_balun_programming4 ай бұрын
Спасибо большое!
@sychsiarhei62084 ай бұрын
Час назад видео вышло.. хоть посмотрел , прежде чем писать?
@Albert-nc1rj4 ай бұрын
@@sychsiarhei6208 мне хватило 40 минут, чтобы написать комментарий
@РусланЮсуфов-ф3ш3 ай бұрын
@@sychsiarhei6208 , на х2 скорости спокойно)
@Noah-zt3sfАй бұрын
Владимир, вас очень приятно слушать, разбор темы глубокий, чувствуется интерес и профессионализм, однозначно лайк
@ШамильШайдуллин-з8еАй бұрын
На 46:10 классно было бы напомнить людям о том что у каждой переменной есть тип и значение и len cap лезут в именно в тип
@mikeofs13042 ай бұрын
34:30 в loopunwinding функции ошибка в цикле вместо len/4 и j++ надо j += 4 иначе не пройдем весь слайс. Скорее даже опечатка)) А видео отличное
@faustgete98694 ай бұрын
Пожалуй поправлю Маэстро)). На 19:36 все таки при make([]int, 3, 6) будет три элемента в слайсе, т.е. [0, 0, 0]. Капасити все так же 6 элементов. 😊
@faustgete98694 ай бұрын
Прошу прощения, далее все объяснено, но на том слайде корректнее все таки три элемента изобразить)
@broninrocks54314 ай бұрын
Теперь мамкины интервьюеры ещё злее будут долбить кандидатов этими слайсами. Спасибо хоть пока дженерики особо не осилили
@cglike4 ай бұрын
6:50 «добавляю единичку умножаю на два» звучит так будто другой порядок операций. Массив не указатель - да, внутри нет указателя, но сам массив это же по сути указатель, и на 6:50 вы как раз работаете с ним как с указателем
@БогданКоробка-ф2к4 ай бұрын
Очень даже годно и простым языком с примерами. Буду смотреть твои выпуски.
@faustgete98694 ай бұрын
Прекрасное видео по внутреннему устройству языка! Было бы здорово в отдельном видео раскрыть тему хранения данных на стеке и куче, если такого ещё нет на канале.
@vladimir_balun_programming4 ай бұрын
Спасибо!
@ДмитрийВ-ч1к4 ай бұрын
При написании своей функции Append на 1:15:15 допущена серьёзная ошибка. Не учтено, что len(data) может быть больше чем previousLen. Например: previousLen = 1; cap(slice) = 4; len(data) = 5; Получим, что newLength = 6 и newLength > cap(slice), функция make создаст newSlice( len=2; cap=2) В строке 21 получим панику. Чтобы исправить ошибку, лучше в строке 11 написать: capacity := newLength + newLength В функции main (строки 28-36) вместо своей функции Append вызывается стандартная функция append.
@Basestation-tt2sm9 күн бұрын
27:50 а если в строке символы более 1Б и они в перемешку с 1Б символами, то не смогу воспользоваться, как я понял
@KranWagen4 ай бұрын
Язык Golang кажется очень простым, и кажется, что ты уже всё знаешь о нём. Но всё равно он остаётся интересным, и хочется изучать его глубже. Спасибо вам за это!
@vladimir_balun_programming4 ай бұрын
@@KranWagen он действительно простой, чтобы начать на нем писать, но как и влюбил другом языке - в нем есть множество тонкостей и нюансов
@Go_Dnota2 ай бұрын
Лучший гайд на в ру сигменте, сделай пожалуйста по мапам то же и самое
@m1khal3v3 ай бұрын
На 40:00 минуте прям очень интересно)
@sd3veng3383 ай бұрын
хотелось бы видеть livecoding, на примере какого нить проекта, к примеру web с использованием какого нить фраемворка fiber или gin
@dlatin4 ай бұрын
Про range по массивам стоит сказать, что в правой части range массив тоже будет скопирован. Т.е если range через i, v и в первой итерации меняем последний элемент массива по индексу, то на последней итерации v будет старый.
@Serj1c2 ай бұрын
у нас есть указатель на начало массива, но при этом массив это никакой не указатель область памяти)
@sirMishka8282 ай бұрын
Дадада
@konstantinfess85504 ай бұрын
Владимир, спасибо большое за раскрытие темы! Это очень круто! Ты бы мог прикрепить презентацию с видео?
@vladimir_balun_programming4 ай бұрын
Спасибо, презентацию не смогу прикрепить, так как она будет меняться периодически
@JIockjoy2 ай бұрын
Добрый день, 6:19 Массив это не указатель, 6:35 Уже есть указатель на начало, не стыковка. Возможно, те кто говорил что массив есть указатель, очень хорошо понимают С анд С++, где имя массива хранит в себе адрес первого элемента и то что вы приводите на графике с 6:34 и есть разыменование указателя. Так что да имя массива и есть указатель! Дальше опасаюсь смотреть, потому что докладчик может нести неправдивую информацию.
@vladimir_balun_programming2 ай бұрын
Массив, как и любая другая переменная находится в памяти, у этого участка памяти есть адрес, относительно этого адреса я произвожу все операции (все равно, что если я бы обратился к 4 байту int32 переменной - когда int32 переменная не является указателем) Если вы настолько категоричны к тому, что я в том месте употребил слово "указатель на начало", а не "начало массива" - пожалуйста, можете дальше не смотреть
@РоландДискейн-к6й4 ай бұрын
Я не понял: ты говоришь, что массив не является указателем и сразу после говоришь, что массив указывает на начало блока памяти. Объясни, пожалуйста, я запутался. Тайминг: 5:43
@Гаврюша14 ай бұрын
Давай курс по c++😅
@vladimir_balun_programming4 ай бұрын
Может быть в будущем сделаю по многопоточному программированию)
@ivanchukayev65473 ай бұрын
Кажется я уже стал Senior Go developer)))
@IgorAlekseev-x2n2 ай бұрын
Владимир, в тесте BenchmarkWithLoopUnwniding вы итерируетесь по четверти массива (зато 4 раза).
@yavener2 күн бұрын
вроде да, там нужно было приращение j++ поменять на j += 4
@doingwell56294 ай бұрын
эээм, а если я взял адресс массива а он потом переехал, я подозреваю а рантайме нет event-driven механизма при котором моя пременная с адресом обновится автоматически? Получается я любой момент времени я могу получить invalid pointer? Или это не так и рантайм постоянно резолвит адреса во время обращения к переменной?
@ziliboba732 ай бұрын
На 19:40 там неверно, должно быть // [0, 0, 0]
@vladimir_balun_programming2 ай бұрын
Нет, я нулями показывал не длину, а емкость
@МартинАдамов4 ай бұрын
Здравствуйте! Где я могу заказать книги для, начинающих программирования на C++ ?
@va-petrov4 ай бұрын
В iteration_optimization логическая ошибка в BenchmarkWithLoopUnwinding(). Счетчик увеличивается на единицу, а не на 4. Нужно либо j+=4 в заголовке цикла, либо j*4 в индексах. Это несколько ухудшит производительность, но не сильно.
@va-petrov4 ай бұрын
И len(data)/4 лучше выполнить 1 раз перед циклом. Но надо мерять, что быстрее j+=4 и проверка на
@vladimir_balun_programming4 ай бұрын
@@va-petrov да, на счет ошибки согласен
@dmitryzhigalkin12764 ай бұрын
4:38 если массивы можно сравнивать, почему их нельзя использовать как ключи в мапе?
@dmitryzhigalkin12764 ай бұрын
а, перепутал со слайсами
@vladimir_balun_programming4 ай бұрын
@@dmitryzhigalkin1276 go.dev/play/p/Sb6nLu-rsS7 - можно
@dlatin4 ай бұрын
Если массив [0]int{} имеет размер 0 байт, верно ли, что эту конструкцию можно использовать как замену пустой структуре при передаче через каналы?
@vladimir_balun_programming4 ай бұрын
@@dlatin зачем?)
@dlatin4 ай бұрын
@@vladimir_balun_programmingвопрос не в этом, а в том - будет ли это полноценной альтернативой?
@彡_UCI_彡4 ай бұрын
Привет! вот мне тут подумалось а может правильнее не передавать массив в функцию? это же будет как мы тут выяснили совсем не квантовое действие правильнее в духе GO делать передачу массива в канале верно? )
@vladimir_balun_programming4 ай бұрын
@@彡_UCI_彡 не нужно так делать)
@sergegoujon80222 ай бұрын
Если уж каверкать устоявшуюся английскую терминологию и пытаться передать смысл на русском, то это не срез, а нарезка тогда уж. Не нужно выдумывать термины, есть общепринятое соглашение, что ЯП и терминология с ним связанная - всё на английском языке.
@EminPogosbekov2 ай бұрын
это нельзя не лайкнуть
@EyeOfInfinity-t5g4 ай бұрын
"массив не указатель". через минуту "берем указатель на масив и через ансейв читаем данные" :)
@vladimir_balun_programming4 ай бұрын
А где здесь противоречие? Указатель != взять указатель на что-то
@НеферумСанайель4 ай бұрын
согласен, семантически не совсем понятна разница между указателем и указыванием, но там дальше в видео объясняется, что указатель массива и его длинна становятся типом самого массива и хранятся эти значения в таблице
@vladimir_balun_programming4 ай бұрын
@@НеферумСанайель еще раз скажу - указатель != взять указатель на то, что не является указателем