Все о массивах и слайсах в Go в одном видео

แชร์
ฝัง
  • เผยแพร่เมื่อ 9 พ.ย. 2024

ความคิดเห็น • 52

  • @vladimir_balun_programming
    @vladimir_balun_programming  2 หลายเดือนก่อน

    Присоединяйтесь к моему каналу в Телеграм: t.me/vladimir_balun_programming

  • @Albert-nc1rj
    @Albert-nc1rj 2 หลายเดือนก่อน +14

    Пожалуй лучшее видео про слайсы и массивы в Go на ютубе, даже на англоязычном ютубе ничего такого не видел)

    • @vladimir_balun_programming
      @vladimir_balun_programming  2 หลายเดือนก่อน

      Спасибо большое!

    • @sychsiarhei6208
      @sychsiarhei6208 2 หลายเดือนก่อน +2

      Час назад видео вышло.. хоть посмотрел , прежде чем писать?

    • @Albert-nc1rj
      @Albert-nc1rj 2 หลายเดือนก่อน

      @@sychsiarhei6208 мне хватило 40 минут, чтобы написать комментарий

    • @РусланЮсуфов-ф3ш
      @РусланЮсуфов-ф3ш หลายเดือนก่อน

      @@sychsiarhei6208 , на х2 скорости спокойно)

  • @mememaker7671
    @mememaker7671 5 วันที่ผ่านมา

    Лучший гайд на в ру сигменте, сделай пожалуйста по мапам то же и самое

  • @faustgete9869
    @faustgete9869 2 หลายเดือนก่อน +5

    Пожалуй поправлю Маэстро)). На 19:36 все таки при make([]int, 3, 6) будет три элемента в слайсе, т.е. [0, 0, 0]. Капасити все так же 6 элементов. 😊

    • @faustgete9869
      @faustgete9869 2 หลายเดือนก่อน

      Прошу прощения, далее все объяснено, но на том слайде корректнее все таки три элемента изобразить)

  • @faustgete9869
    @faustgete9869 2 หลายเดือนก่อน +1

    Прекрасное видео по внутреннему устройству языка! Было бы здорово в отдельном видео раскрыть тему хранения данных на стеке и куче, если такого ещё нет на канале.

  • @БогданКоробка-ф2к
    @БогданКоробка-ф2к หลายเดือนก่อน

    Очень даже годно и простым языком с примерами. Буду смотреть твои выпуски.

  • @CsturboNetPlus
    @CsturboNetPlus 2 หลายเดือนก่อน +2

    Язык Golang кажется очень простым, и кажется, что ты уже всё знаешь о нём. Но всё равно он остаётся интересным, и хочется изучать его глубже. Спасибо вам за это!

    • @vladimir_balun_programming
      @vladimir_balun_programming  2 หลายเดือนก่อน

      @@CsturboNetPlus он действительно простой, чтобы начать на нем писать, но как и влюбил другом языке - в нем есть множество тонкостей и нюансов

  • @sd3veng338
    @sd3veng338 หลายเดือนก่อน +1

    хотелось бы видеть livecoding, на примере какого нить проекта, к примеру web с использованием какого нить фраемворка fiber или gin

  • @m1khal3v
    @m1khal3v หลายเดือนก่อน

    На 40:00 минуте прям очень интересно)

  • @Serj1c
    @Serj1c 20 วันที่ผ่านมา +2

    у нас есть указатель на начало массива, но при этом массив это никакой не указатель область памяти)

    • @sirMishka828
      @sirMishka828 15 วันที่ผ่านมา

      Дадада

  • @IgorAlekseev-x2n
    @IgorAlekseev-x2n 12 วันที่ผ่านมา

    Владимир, в тесте BenchmarkWithLoopUnwniding вы итерируетесь по четверти массива (зато 4 раза).

  • @cglike
    @cglike หลายเดือนก่อน +2

    6:50 «добавляю единичку умножаю на два» звучит так будто другой порядок операций.
    Массив не указатель - да, внутри нет указателя, но сам массив это же по сути указатель, и на 6:50 вы как раз работаете с ним как с указателем

  • @konstantinfess8550
    @konstantinfess8550 2 หลายเดือนก่อน

    Владимир, спасибо большое за раскрытие темы! Это очень круто! Ты бы мог прикрепить презентацию с видео?

    • @vladimir_balun_programming
      @vladimir_balun_programming  2 หลายเดือนก่อน

      Спасибо, презентацию не смогу прикрепить, так как она будет меняться периодически

  • @ivanchukayev6547
    @ivanchukayev6547 หลายเดือนก่อน

    Кажется я уже стал Senior Go developer)))

  • @Гаврюша1
    @Гаврюша1 2 หลายเดือนก่อน +4

    Давай курс по c++😅

    • @vladimir_balun_programming
      @vladimir_balun_programming  2 หลายเดือนก่อน +1

      Может быть в будущем сделаю по многопоточному программированию)

  • @broninrocks5431
    @broninrocks5431 หลายเดือนก่อน +1

    Теперь мамкины интервьюеры ещё злее будут долбить кандидатов этими слайсами. Спасибо хоть пока дженерики особо не осилили

  • @dlatin
    @dlatin 2 หลายเดือนก่อน

    Про range по массивам стоит сказать, что в правой части range массив тоже будет скопирован.
    Т.е если range через i, v и в первой итерации меняем последний элемент массива по индексу, то на последней итерации v будет старый.

  • @МартинАдамов
    @МартинАдамов 2 หลายเดือนก่อน

    Здравствуйте! Где я могу заказать книги для, начинающих программирования на C++ ?

  • @ДмитрийВ-ч1к
    @ДмитрийВ-ч1к หลายเดือนก่อน

    При написании своей функции 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.

  • @彡_UCI_彡
    @彡_UCI_彡 2 หลายเดือนก่อน

    Привет!
    вот мне тут подумалось а может правильнее не передавать массив в функцию?
    это же будет как мы тут выяснили совсем не квантовое действие
    правильнее в духе GO делать передачу массива в канале
    верно? )

  • @РоландДискейн-к6й
    @РоландДискейн-к6й 2 หลายเดือนก่อน

    Я не понял: ты говоришь, что массив не является указателем и сразу после говоришь, что массив указывает на начало блока памяти. Объясни, пожалуйста, я запутался. Тайминг: 5:43

  • @JIockjoy
    @JIockjoy 10 วันที่ผ่านมา

    Добрый день, 6:19 Массив это не указатель, 6:35 Уже есть указатель на начало, не стыковка. Возможно, те кто говорил что массив есть указатель, очень хорошо понимают С анд С++, где имя массива хранит в себе адрес первого элемента и то что вы приводите на графике с 6:34 и есть разыменование указателя. Так что да имя массива и есть указатель! Дальше опасаюсь смотреть, потому что докладчик может нести неправдивую информацию.

    • @vladimir_balun_programming
      @vladimir_balun_programming  10 วันที่ผ่านมา

      Массив, как и любая другая переменная находится в памяти, у этого участка памяти есть адрес, относительно этого адреса я произвожу все операции (все равно, что если я бы обратился к 4 байту int32 переменной - когда int32 переменная не является указателем)
      Если вы настолько категоричны к тому, что я в том месте употребил слово "указатель на начало", а не "начало массива" - пожалуйста, можете дальше не смотреть

  • @ziliboba73
    @ziliboba73 17 วันที่ผ่านมา

    На 19:40 там неверно, должно быть // [0, 0, 0]

    • @vladimir_balun_programming
      @vladimir_balun_programming  17 วันที่ผ่านมา +1

      Нет, я нулями показывал не длину, а емкость

  • @va-petrov
    @va-petrov 2 หลายเดือนก่อน

    В iteration_optimization логическая ошибка в BenchmarkWithLoopUnwinding(). Счетчик увеличивается на единицу, а не на 4. Нужно либо j+=4 в заголовке цикла, либо j*4 в индексах. Это несколько ухудшит производительность, но не сильно.

    • @va-petrov
      @va-petrov 2 หลายเดือนก่อน

      И len(data)/4 лучше выполнить 1 раз перед циклом. Но надо мерять, что быстрее j+=4 и проверка на

    • @vladimir_balun_programming
      @vladimir_balun_programming  2 หลายเดือนก่อน

      @@va-petrov да, на счет ошибки согласен

  • @doingwell5629
    @doingwell5629 2 หลายเดือนก่อน

    эээм, а если я взял адресс массива а он потом переехал, я подозреваю а рантайме нет event-driven механизма при котором моя пременная с адресом обновится автоматически? Получается я любой момент времени я могу получить invalid pointer? Или это не так и рантайм постоянно резолвит адреса во время обращения к переменной?

  • @dlatin
    @dlatin 2 หลายเดือนก่อน

    Если массив [0]int{} имеет размер 0 байт, верно ли, что эту конструкцию можно использовать как замену пустой структуре при передаче через каналы?

    • @vladimir_balun_programming
      @vladimir_balun_programming  2 หลายเดือนก่อน

      @@dlatin зачем?)

    • @dlatin
      @dlatin 2 หลายเดือนก่อน

      ​@@vladimir_balun_programmingвопрос не в этом, а в том - будет ли это полноценной альтернативой?

  • @dmitryzhigalkin1276
    @dmitryzhigalkin1276 2 หลายเดือนก่อน

    4:38 если массивы можно сравнивать, почему их нельзя использовать как ключи в мапе?

    • @dmitryzhigalkin1276
      @dmitryzhigalkin1276 2 หลายเดือนก่อน +1

      а, перепутал со слайсами

    • @vladimir_balun_programming
      @vladimir_balun_programming  2 หลายเดือนก่อน +1

      @@dmitryzhigalkin1276 go.dev/play/p/Sb6nLu-rsS7 - можно

  • @EminPogosbekov
    @EminPogosbekov 17 วันที่ผ่านมา

    это нельзя не лайкнуть

  • @АлексейКиреев-н7н
    @АлексейКиреев-н7н 2 หลายเดือนก่อน

    "массив не указатель". через минуту "берем указатель на масив и через ансейв читаем данные" :)

    • @vladimir_balun_programming
      @vladimir_balun_programming  2 หลายเดือนก่อน +2

      А где здесь противоречие? Указатель != взять указатель на что-то

    • @НеферумСанайель
      @НеферумСанайель 2 หลายเดือนก่อน

      согласен, семантически не совсем понятна разница между указателем и указыванием, но там дальше в видео объясняется, что указатель массива и его длинна становятся типом самого массива и хранятся эти значения в таблице

    • @vladimir_balun_programming
      @vladimir_balun_programming  2 หลายเดือนก่อน +1

      @@НеферумСанайель еще раз скажу - указатель != взять указатель на то, что не является указателем

  • @sergegoujon8022
    @sergegoujon8022 19 วันที่ผ่านมา

    Если уж каверкать устоявшуюся английскую терминологию и пытаться передать смысл на русском, то это не срез, а нарезка тогда уж. Не нужно выдумывать термины, есть общепринятое соглашение, что ЯП и терминология с ним связанная - всё на английском языке.