Изучаем Go. Урок №11. Кастомные типы. Структуры(1)

แชร์
ฝัง
  • เผยแพร่เมื่อ 5 ก.พ. 2025

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

  • @Rodya_one
    @Rodya_one ปีที่แล้ว +3

    очень круто, что объясняешь понятным языком - тем самым курс усваивается в разы легче)
    спасибо за твой труд)

  • @randompuppet720
    @randompuppet720 3 ปีที่แล้ว +6

    отлично, намного лучше чем мой текущий курс на курсере.

    • @thisisit7267
      @thisisit7267  3 ปีที่แล้ว +1

      Спасибо! Такие комменты мотивируют продолжать свое дело)

  • @jamjam3337
    @jamjam3337 8 วันที่ผ่านมา

    спасибо

  • @xurshidxakimov8895
    @xurshidxakimov8895 2 ปีที่แล้ว +1

    Понятно и слаженно объясняете. Спасибо за курс

  • @Boba_Fett_2.0
    @Boba_Fett_2.0 2 ปีที่แล้ว +1

    Курс огонь!!!!
    Спасибо автору!!!

  • @nlb7143
    @nlb7143 3 ปีที่แล้ว +2

    Я конечно увлекаюсь питоном, но не прочь посмотреть и по golang:)

  • @Torakify
    @Torakify ปีที่แล้ว

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

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

      в предыдущих уроках говорил об этом

  • @sergeykosovsky7005
    @sergeykosovsky7005 ปีที่แล้ว

    Еще в этом уроке - можно было бы показать как IDE помогает заполнять значения в структуре - через вставку полей - очень удобно.

  • @andreichemeris4141
    @andreichemeris4141 2 ปีที่แล้ว +1

    ну, вот сейчас все понятно )

  • @qwertyzyxel9349
    @qwertyzyxel9349 ปีที่แล้ว

    👍👍👍

  • @jawanmardi7609
    @jawanmardi7609 2 ปีที่แล้ว +1

    Очень сложная тема, но за уроки лайк

  • @Coraline-j1g
    @Coraline-j1g 4 หลายเดือนก่อน

    а почему time ты называешь структурой (11:50)? Это же функция вроде.... ну, вот сейчас все понятно ).

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

    Кто-нибудь объясните мне, 9:15 время видео, 56 строка pIvan := &Person
    Знак & означает получить указатель определенного типа, получается pIvan получил указатель типа Person, то есть *Person
    Вопрос ?
    Почему вывод команды fmt.Println(pIvan)(57 строка): &(Ivan, 90), а не адрес в памят, как это было в предыдущих уроках

    • @N.am.e
      @N.am.e 3 หลายเดือนก่อน

      Когда вы выводите указатель на структуру с помощью fmt.Println, Go отображает содержимое структуры, на которую указывает указатель. Это поведение связано с тем, как Go реализует метод Stringer для различных типов. По умолчанию, для указателей на структуры, Go выводит значения полей структуры, чтобы предоставить более полезную информацию для разработчика.
      Если вы хотите вывести адрес памяти указателя на структуру, используйте fmt.Printf с форматом "%p":
      package main
      import "fmt"
      type Person struct {
      Name string
      }
      func main() {
      p := &Person{"name"}
      fmt.Println(p) // Выводит содержимое структуры: &{name}
      fmt.Printf("%p
      ", p) // Выводит адрес памяти: 0xc000010220 (пример)
      }
      Таким образом, fmt.Println(p) выведет содержимое структуры в удобочитаемом виде (&{name}), тогда как fmt.Printf("%p
      ", p) выведет именно адрес памяти, на который указывает p.
      Причина, по которой Go отображает содержимое структуры по умолчанию, заключается в том, что это часто более полезно для отладки и чтения кода. Адреса памяти менее информативны при чтении вывода, особенно если вы хотите видеть конкретные значения полей структуры.
      Для обычных типов например указатель int он будет выводить адрес памяти

  • @user-qt4mc1ty9t
    @user-qt4mc1ty9t 6 หลายเดือนก่อน

    Я не понял. Есть тип Person тогда к какому типу он ссылается?

  • @youngfenrir
    @youngfenrir 3 ปีที่แล้ว +1

    а почему time ты называешь структурой (11:50)? Это же функция вроде...

    • @thisisit7267
      @thisisit7267  3 ปีที่แล้ว

      Привет. В пакете time мы вызываем функцию Now(), которая возвращает структуру Time. Далее у этой структуры есть метод String(), который приводит данную структуру к строке. Подробнее можно посмотреть в исходниках пакета time: pkg.go.dev/time#Now

    • @youngfenrir
      @youngfenrir 3 ปีที่แล้ว

      @@thisisit7267 теперь понял, спасибо

  • @sergeykosovsky7005
    @sergeykosovsky7005 ปีที่แล้ว

    Еще бы домашка не помешала к урокам.
    А чтобы ее не проверять - еще 1 видео, как ты сам решал эту домашку (для самопроверки).
    Теория без практики - низкая эффективность.
    Вот пример у одного чувака по JS так было (пример как он дает и показывает домашку) - th-cam.com/video/yUaHBPVGvTk/w-d-xo.html
    Очень удобно.

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

    Если это уроки для новчиков с 0, то хреновые уроки)) я понимаю что тут происходит только потому, что это второй язык

    • @ДмитрийСитников-ш2х
      @ДмитрийСитников-ш2х 3 หลายเดือนก่อน

      Да, после js и ts ещё более менее

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

      На go обычно переходят с других языков и не учат те, кто с 0, потому норм. Не вижу смысла разжевывать еще более подробно, когда есть куча материала с другими языками.

  • @NameName-xt3if
    @NameName-xt3if 3 ปีที่แล้ว

    Привет! Можно ли как-то с тобой связаться? Хотел бы задать пару вопросов.

    • @thisisit7267
      @thisisit7267  3 ปีที่แล้ว

      Привет. Можешь написать на почту: ThisIsItChannel1371@gmail.com

  • @UAStriker
    @UAStriker 2 ปีที่แล้ว +2

    А какой смысл создавать кастомные типы? Почему бы сразу не создать переменную базового типа?

    • @thisisit7267
      @thisisit7267  2 ปีที่แล้ว +3

      Кастомным типам мы можем добавлять нужным нам методы, т.е. например мы можем реализовать свой тип на основе слайса, добавить туда полезные и частоиспользуемые методы, такие как: поиск индекса элемента, информация о наличия в слайсе, фильтрация, вставка, удаление (все что уогдно и что вам нужно)
      Во-первых у такого кастомного типа будет свое осмысленное название, что сделает код более читаемым. Во вторых, как сказал выше - можно добавить необходимую функциональность сразу в тип и она будет под рукой в нужный момент)

    • @pavel5878
      @pavel5878 2 ปีที่แล้ว

      @@thisisit7267 а можно на примерах? спасибо

    • @UAStriker
      @UAStriker 2 ปีที่แล้ว

      @@thisisit7267 спасибо за ответ

    • @thisisit7267
      @thisisit7267  2 ปีที่แล้ว +2

      @@pavel5878 Набросал пример с кастомным типом на основе слайса int64. Тут добавлено 2 метода - получение индекса элемента и удаление элемента из слайса go.dev/play/p/p3DOX9svtr0
      Если вы еще не изучали методы, то настоятельно рекомендую посмотреть следующий урок (12).

  • @Ramosok
    @Ramosok 29 วันที่ผ่านมา

    VScode не подсказывает, перестань рекламировать IDE

    • @MarkedByTheSun
      @MarkedByTheSun 22 วันที่ผ่านมา

      Это не VSCode 🧠

    • @Ramosok
      @Ramosok 22 วันที่ผ่านมา

      @MarkedByTheSun спасибо кэп

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

    пока нихуя не понимаю

  • @ilyadruzh
    @ilyadruzh ปีที่แล้ว

    Не кастомные, а «собственные»

    • @sergeykosovsky7005
      @sergeykosovsky7005 ปีที่แล้ว

      кастомный - это не собственный, это произвольный, отличающийся от стандартного (не стандартный)

    • @ilyadruzh
      @ilyadruzh ปีที่แล้ว

      @@sergeykosovsky7005 а собственный это не отличный от оригинала?

    • @sergeykosovsky7005
      @sergeykosovsky7005 ปีที่แล้ว

      @@ilyadruzh конечно нет. Собственный - это личный, принадлежащий кому-то - он не обязательно отличается от оригинала и вообще к оригиналу может не иметь отношения.

    • @ilyadruzh
      @ilyadruzh ปีที่แล้ว

      @@sergeykosovsky7005 обосновано, норм.

    • @ilyadruzh
      @ilyadruzh ปีที่แล้ว

      @@sergeykosovsky7005 но взавтчимости от контекста можно и собственный использовать, слово кастомный вставляют от непонимания

  • @ilyadruzh
    @ilyadruzh ปีที่แล้ว

    Не дефолтные, а «изначальные»

    • @sergeykosovsky7005
      @sergeykosovsky7005 ปีที่แล้ว

      дефолтный - это не изначальный, это по-умолчанию.
      Раз уж решил быть "учителем" - хоть сам правильно пиши.

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

    Не совсем понял, а для чего нам нужен указатель на структуру. Вот допустим, что нам дает pVladimir.age если мы можем использовать John.age?

  • @mr.senmax6185
    @mr.senmax6185 ปีที่แล้ว

    Это типа так ОПП заменили в языке ГО ?