В этом видео поговорим про интерфейсы в Golang: что такое, для чего нужны и как ими пользоваться. Мой Twitter - / atipugin Канал в TG - t.me/someoneis... #golang #gopherschool
2022 год. Смотрю ваши видео, отличное дополнение к tour of go а так же другим учебникам, что ни говори, а когда тебе разжевывают все, да еще и на русском-это прекрасно
@@GopherSchool Мужик серьёзно, в Рунете лучше инфы нету, особенно от практика, я проверил). Может в частном порядке есть возможность пообщаться в телеграмме например, заодно тебе и тем набросаю, переписываю сервак с ноды (тема как вариант, довольно болезненно переходить, ощущение что проваливаешься на уровень ниже)
искренне надеюсь что ты вернёшься. хорошо объясняешь и примеры крутые. очень мало такого материала с хорошими продакшн практиками и подачей как у тебя (да ещё и на русском). Тут очень много людей ждут твоего возвращения)
Два вечера скитаний по интернету. А за три года ничего лучше объясняющего интерфейсы в го не появилось. Спасибо! Подписался, но как понимаю канал заброшен. Ну хоть посмотрю старые видосы)
Привет! Жду следующий выпуск, надеюсь ты не забросил канал, потому что предыдущие выпуски были отличные! Хотелось бы узнать с какими реальными проектами на Go ты работаешь, какие подходы, паттерны используешь для разработки, какие актуальные пакеты, когда лучше применять / не применять конкурентность.
Спасибо за видео. Я новичок в гошке, и было какое-то понимание про интерфейсы тут, а вы их подтвердили и укрепили. На будущее хотелось бы информацию о взаимодействии между сервисами, хотя бы по http (curl?).
То есть структуру создаваемой системы удобно представлять в виде N-мерной матрицы : По иерархии мод перечисляются интерфейсы, по одной - данные (структуры например ). На пересечениях - методы реализации интерфейсов. Если сделать такой набор матриц, которые можно крутить, рассматривать и наполнять в разных срезах общей N-мерной модели, то проектирование возможно будет нагляднее и проще чем, как обычно, писать листинг... Система разработки сама выделит части, которые следует перенести в библиотеку, да и оптимизирует весь код
Автор спасибо за Ваши уроки!! Если сделаете платный курс где-нибудь на stepick - я обязательно его бы купил. Например небольшое приложение с микросервисной архитектурой с общением между микросервисами по grpc бд Postgres , JWT и т.д.
Так и не понял, зачем нужны интерфейсы, а почему? Потому что надо было бы показать рядом, чтобы мы делали БЕЗ них, тогда в сравнении стало бы видно, зачем нужны интерфейсы. Сейчас у меня непонимание: зачем нужна лишняя прокладка в виде интерфейса, если есть методы? Метод точно так же может обращаться к полям структуры, вынимать оттуда значения и работать с ними. Метод это ведь уже универсальная сущность, в которую можно "заряжать" поочередно параметры, и получать результаты. Объекты эти держать можно в срезе, а листать циклом for-range. Так зачем же все-таки нужны интерфейсы?..
Большое спасибо за урок. Уважаемый автор, подскажите пожалуйста, как сделать тоже самое, только разделив интерфейсы на пакеты и потом иметь доступ ко всем дочерним пакетам с одного родительского пакета (интерфейса). Все не могу разобраться в логике. Например есть главный интерфейс Animal, который имеет 2 дочерних интерфейса в каждом из которых определенные методы. А под главным интерфейсом есть структуры Cat и Dog, которые имеют те самые 2 дочерних интерфейса и каждая структура реализует нужные методы. Не могу понять, как построить это не в одном файле, как у вас в примерах, а разделив на пакеты. Где Animal главный пакет, а Cat и Dog два дочерних пакета. Буду очень признателен.
9:34 why not use just this: func main() { var c animal = &cat{} var e bird = &eagle{} c.walk() e.walk() } instead of this function: func walk(w walker) { w.walk() } ...it is confusing ...
Надеюсь, что ты вернешься к нам с новым видео-уроком и расскажешь что нибудь интересное, очень ждем тебя. Ты же на руби пишешь? Может и там контент интересный есть.
У меня последнее время что-то какой-то ступор с идеями для видео ¯\_(ツ)_/¯ может стоит создать опрос на канале, и люди сами расскажут, что им интересно. Насчет руби я тоже думал, но тут наверно надо на другом канале это делать
@@GopherSchool хорошая идея с опросом, да и не обязательно делать второй канал, можно в плейлисты сортировать просто языки. А так, очень ждем интересностей. Сам щас дипломную работу буду начинать на golang, хотелось бы чего нибудь узнать нового, каких то решений. Удачи тебе!
@@GopherSchool всем будут полезны и интересны конкретные кейсы и примеры решения с объяснением разных рабочих задач, а также примеры реализации разных простых сетевых сервисов. Именно практические кейсы и реализации по шагам с объяснениями.
Парень вернись! Такого контента нет в СНГ и не будет ещё долго, кто нам ещё расскажет про grpc и прочие классные штуки?)) Давай мы тебе поможем и подкинем несколько классных идей для видео! 1) Часто говорят про fasthttp фреймворк для go, якобы он в 10 раз быстрее обычного net/http, но максимум, что удаётся найти по нему это hello world. Его вообще кто-то использует в реальных проектах? И так ли он хорош, как про него рассказывают? 2) Давай больше практики) Практика лучшее обучение! Можно телеграм бота на GO (А почему нет? =) ) 3) На GO можно парсить? Интересно, как бы это выглядело?) 4) Что должен знать и уметь GO backend разработчик? 5) Топ 5/10 фреймворков/библиотек которые вам стоит использовать 6) Деплой GO проекта 7) best practices Обещаем ставить лайки, подписываться и прожимать колокольчик! =D Нужно популяризировать GO в России, это один из лучших языков) P.S. Я пошёл ставить лайки на все видео, а ты обещай сделать новый видос))
Сложно сказать, надо смотреть на конкретный код. Но в общем случае интерфейс удобно возвращать тогда, когда результат функции может варьироваться. Например, если это какая-нибудь фабрика. Другой пример, это когда наша ф-ия возвращает ошибку (`func blah() error {}`). Тип `error` - это как раз интерфейс из одного метода `Error()`. Это позволяет по сути создавать и возвращать из функции свои типы ошибок.
@@rolsonalister3052 Наоборот, в работе снова появился Go, и есть несколько идей для видео, планирую в обозримом будущем записать новые видео) Главное, чтобы не забанили ютуб)
@@GopherSchool , а вот это уже отличные новости! Будем с нетерпением ждать) Если ютуб забанят, - поищите альтернативные площадки) Главное - оповестите нас об этом в случае чего, например, в телеграмме Вашем)
Автор делал отличный контент!!! Если автор ещё жив и смотрит уведомления о новом комментарии - автор, сделай подписку платную, мне не жалко за проделанную работу тебе денег кидать каждый месяц. Глядишь, таких как я наберётся человек 1000 и автор почувствует мотивацию вернуться к созданию годного контента
@@GopherSchool посоветовать конкретику не могу, но сам лично подписан на два канала в ютубе, где выступаю спонсором(ютуб даёт прикрутить такой функционал у себя программно): там на выбор несколько вариантов обычно: 49 руб/мес, 250-300 руб/мес и для состоятельных парней 100500 рублей/мес. На каждом уровне свои плюшки - доступ к спец контенту, закрытый чат, личное кураторство и т.д. Можно прикрутить заглавный ролик, где попросить заинтересованных подписываться как спонсоры, чтобы автор был более мотивирован продолжать начатое. Восторженных комментариев хватает, думаю всё получится
@@MichailMishutkin Спасибо, звучит интересно, надо будет разобраться с этим делом :) Хотя мне конечно как-то неудобно брать за видео деньги, сразу ответственность какая-то возникает)
@@GopherSchool добровольное спонсорство и продажи это всё таки про разное, годный контент надо поддерживать (иначе всё превратиться в 10 фактов о RESTapi с обнажёнкой на превью), и делать автора независимым в прямом смысле. Только в моей группе по Go со мной учится 271 человек, если мы уж заплатили по 70-100 тыс за среднего качества контент начального уровня, то уж за толковый, который нужен уже для устройства на работу и/или стажировку - 100-200 руб. в месяц это не плата, это слёзы благодарности)))
Я, видимо, тупой. Всё эти примеры делают хуже. Они мне лишь подтверждают, что проще написать по функции для каждого. Будет короче и проще. Зачем это всё абстрагировать, если в итоге все получается сложнее и больше? Или я тупой.
интерфейсы нужны для достижения полиморфизма и уменьшения количества дубляжа кода например есть два объекта(типа) с методами save() для того чтоб их использовать нужно написать две функции например func structSave(s /*структура*/) { s.save() } и так ты будешь описывать каждую функцию с разными типами структур чтоб уменьшить количество разных функций с разными структурами можно использовать интерфейс type saver interface { save() } // принимает интерфейс который описывает поведение save() func polimorf(s saver) { s.save() } polimorf(/*структура с методом save*/)
Слабые примеры. Новичок так и не поймет смысл интерфейсов. В этих примерах возникаеют сразу вопрос: зачем усложнять, когда можно просто прописать методы?
а во фронте разбираешься? по мне так было б круто подключить фронт в виде vue.js допустим в видосах, пока понятно только как гошными теймплейтами рисовать фронт по видосам Тодда
Это получится ролик про Vuejs, а не про Го. Так как в go-части необходимо будет лишь отдать статичные html, js - пара строк кода. Ну и обработать http запросы, которые уже освещали в ранних роликах
Спасибо большое! Наконец-то понял, что такое интерфейс
2020.12.1: На Новый Год я загадаю желание, чтобы Gopher School вернулся
плохо загадал
2022 год. Смотрю ваши видео, отличное дополнение к tour of go а так же другим учебникам, что ни говори, а когда тебе разжевывают все, да еще и на русском-это прекрасно
Спасибо большое! Хотелось бы увидеть работу с горутинами и каналами.
и про работу с пакетами)
Лучшие уроки по Go, твой канал приятная находка! Спасибо
Автор, пожалуйста, выпускайте еще больше уроков по golang, вы очень хорошо, а что более важно, ПОНЯТНО объясняете. Возвращайтесь с новыми уроками!
Спасибо!
Лучший канал про го. Автору респект, очень надеюсь, что будет продолжение.
канал развивается, рад за тебя! не останавливайся на достигнутом.
отличная подача! Я как и остальные жду новых видео ʕ༼◕ ౪ ◕✿༽ʔ
Как будто мысли читаете. Спасибо вам!
Спасибо! Наконец-то нормальное и понятное объяснение! Разобрался теперь)
Спасибо за контент. Полезное видео. Хотелось бы посмотреть на твое видео о горутинах.
Очень удачные и доходчивые примеры! Большое спасибо за Вашу работу
Спасибо большое!!! Ждём продолжения уроков
Отличные видео! Спасибо, побольше близких к реальности проектов :)
Пожалуйста, вернись, выучил Golang только благодаря тебе! Жду тебя уже долго, счастья тебе, и надеюсь что ты вернёшься
Спасибо! Ну после таких комментов и правда придется снимать еще :)
Ну реально ведь канал классный, почему бросил?
Сначала работа навалилась, потом что-то темы не приходили в голову. Так год и прошёл :)
Темы? Ну например работа с базой данных в Golang, или геймдев в Go, а может быть даже GUI
@@GopherSchool Мужик серьёзно, в Рунете лучше инфы нету, особенно от практика, я проверил). Может в частном порядке есть возможность пообщаться в телеграмме например, заодно тебе и тем набросаю, переписываю сервак с ноды (тема как вариант, довольно болезненно переходить, ощущение что проваливаешься на уровень ниже)
По моему заказу! Спасибо огромное!
Это лучшее объяснение по интерфейсам, что я видела! :) Спасибо огромное 😍😍😍
да соглашусь. очень лаконично и не дико заумно.
Реально очень хорошее видео, понятная и удобная подача, спасибо!
Вы делаете полезное дело, не бросайте его :)
Спасибо! 💪
искренне надеюсь что ты вернёшься. хорошо объясняешь и примеры крутые. очень мало такого материала с хорошими продакшн практиками и подачей как у тебя (да ещё и на русском). Тут очень много людей ждут твоего возвращения)
Отличная подача материала, жду с нетерпением выпуска новых роликов :)
Ну очень профессионально!!!
Огромное спасибо!!!
Спасибо!
@@GopherSchool Будем ждать новых уроков!
Пример с map прям вау! Круто!
Бро, у тебя самый качественный канал по Golang на youtube. Многие ждут новых видео и готовы советовать другим. Возвращайся)
Спасибо. очень интересно. ждем продолжения.
Помогли разобраться с интерфейсами, благодарю!
Ждем с нетерпением, возвращайся! Очень хочется побольше послушать за API & gRPC
прекрасное объяснение материала) спасибо за труд
Два вечера скитаний по интернету. А за три года ничего лучше объясняющего интерфейсы в го не появилось. Спасибо! Подписался, но как понимаю канал заброшен. Ну хоть посмотрю старые видосы)
Очень полезно, спасибо!
Спасибо, очень информативно!
Привет! Жду следующий выпуск, надеюсь ты не забросил канал, потому что предыдущие выпуски были отличные! Хотелось бы узнать с какими реальными проектами на Go ты работаешь, какие подходы, паттерны используешь для разработки, какие актуальные пакеты, когда лучше применять / не применять конкурентность.
Спасибо! Забрасывать не хочу, но пока маловато свободного времени и немного затык с идеями для видео :(
@@GopherSchool идеи: 1) Вложенные структуры при использовании селектов с джойнами; 2) Постраничное отображение результатов запросов к базе.
Можно раскрыть тему децентрализованных приложений, блокчейна и всего такого. Твоя подача продакшн материала лучшая
Очень понятное объяснение, спасибо.
Super!!!
Вернись пожалуйста 😂. Прекрасное объяснение! Хотел бы увидеть создание GUI в Go
Вас приятно слушать
Спасибо за видео. Я новичок в гошке, и было какое-то понимание про интерфейсы тут, а вы их подтвердили и укрепили.
На будущее хотелось бы информацию о взаимодействии между сервисами, хотя бы по http (curl?).
Хорошо рассказал. Сегодня парился над выводом каталогов в виде дерева. Если что, запили на эту тему видос.
Gopher School Спасибо!!!
Ты большой молодец❤
Немного по другому раскрыл тему интерфейсов на своем канале. Интересно будет сравнить.
Спасибо!👍👍👍
Отличные сэмплы, автору респект, в надежде что не забил в этой деятельности
То есть структуру создаваемой системы удобно представлять в виде N-мерной матрицы :
По иерархии мод перечисляются интерфейсы, по одной - данные (структуры например ). На пересечениях - методы реализации интерфейсов.
Если сделать такой набор матриц, которые можно крутить, рассматривать и наполнять в разных срезах общей N-мерной модели, то проектирование возможно будет нагляднее и проще чем, как обычно, писать листинг... Система разработки сама выделит части, которые следует перенести в библиотеку, да и оптимизирует весь код
Пару идей:
code conventions
escape analysis
First-class functions
high-order function
packages
modules
dependencies management
debugging
code optimizations
dev environment configuration
Может посмотрим ещё в сторону graphql )?
За видео спасибо большое !
Добрый день! Спасибо за видео! Хотелось бы увидеть видео по гоурутинам и каналам.
Автор спасибо за Ваши уроки!! Если сделаете платный курс где-нибудь на stepick - я обязательно его бы купил.
Например небольшое приложение с микросервисной архитектурой с общением между микросервисами по grpc
бд Postgres , JWT и т.д.
Было бы здорово посмотреть видео о том какие ресурсы использовал/используешь для развития в языке.
Спасибо огромное! Очень понятно объяснили!!
Когда новые видео??
Спасибо! Пока не знаю ¯\_(ツ)_/¯
УРАААА! строкА! :)
2021.12.18: На Новый Год я загадаю желание, чтобы Gopher School вернулся
Так и не понял, зачем нужны интерфейсы, а почему? Потому что надо было бы показать рядом, чтобы мы делали БЕЗ них, тогда в сравнении стало бы видно, зачем нужны интерфейсы. Сейчас у меня непонимание: зачем нужна лишняя прокладка в виде интерфейса, если есть методы? Метод точно так же может обращаться к полям структуры, вынимать оттуда значения и работать с ними. Метод это ведь уже универсальная сущность, в которую можно "заряжать" поочередно параметры, и получать результаты. Объекты эти держать можно в срезе, а листать циклом for-range. Так зачем же все-таки нужны интерфейсы?..
все еще жду
Очень круто объясняешь, лучшие уроки. Жаль что канал не развивается.
Жаль что канал остыл. У вас получается отлично объяснять 👍
👍👍
хорошо объясняете
спасибо!
Привет! Почему так долго видео не выходят? Я очень жду твоих видео, ты один из лучших контент мейкеров по го! Возвращайся!
Большое спасибо за урок. Уважаемый автор, подскажите пожалуйста, как сделать тоже самое, только разделив интерфейсы на пакеты и потом иметь доступ ко всем дочерним пакетам с одного родительского пакета (интерфейса). Все не могу разобраться в логике. Например есть главный интерфейс Animal, который имеет 2 дочерних интерфейса в каждом из которых определенные методы. А под главным интерфейсом есть структуры Cat и Dog, которые имеют те самые 2 дочерних интерфейса и каждая структура реализует нужные методы. Не могу понять, как построить это не в одном файле, как у вас в примерах, а разделив на пакеты. Где Animal главный пакет, а Cat и Dog два дочерних пакета. Буду очень признателен.
Привет, скажи пожалуйста, стоит ли ждать новых видео про го, или уже все?
Почему на 5:08 ты в аргументы sayHello ты вставляешь указатели на интерфейсы, но в объявлении функции sayHello там просто интерфейс, без указателя?
В аргументы `sayHello` передаются не интерфейсы, а структуры (точнее ссылки на них), которые реализуют этот интерфейс.
@@GopherSchool но в декларации greeter без звёздочки, то есть не указатель, а в вызовах этой функции передаются указатели
Сними видео про модули, как правильно подключать пакеты. Некоторые до сих пор с PATH хороводы водят.
А есть выбор, если имеем локальный пакет?
Например у меня свои наработки, которые не хочется/нельзя показать на том же github.
Чувак мы тебя ждем, Вернись !
надо же! один раз всё таки получилось выговорить интерфЭйс вместо интерфЕйс.
куда пропал? Ждемс ещё уроки! ))
Спасибо за видео. Какими расширениями VSCode вы пользуетесь при программировании на Go?
9:34 why not use just this:
func main() {
var c animal = &cat{}
var e bird = &eagle{}
c.walk()
e.walk()
}
instead of this function:
func walk(w walker) {
w.walk()
}
...it is confusing ...
Автор, почему перестал пилить видосы??? никто так хорошо не объяснял интерфейсы. более 5 видосов и несколько статей глянул
Запиши урок про ссылки и указатели.
Также в новых обновлениях Go вместо interface{} можно использовать any
Так и не понял зачем в интерфейсы методы складывать, мы же и без интерфейсов можем их вызывать на объектах. Просто для структуры?
Надеюсь, что ты вернешься к нам с новым видео-уроком и расскажешь что нибудь интересное, очень ждем тебя. Ты же на руби пишешь? Может и там контент интересный есть.
У меня последнее время что-то какой-то ступор с идеями для видео ¯\_(ツ)_/¯ может стоит создать опрос на канале, и люди сами расскажут, что им интересно. Насчет руби я тоже думал, но тут наверно надо на другом канале это делать
@@GopherSchool хорошая идея с опросом, да и не обязательно делать второй канал, можно в плейлисты сортировать просто языки. А так, очень ждем интересностей. Сам щас дипломную работу буду начинать на golang, хотелось бы чего нибудь узнать нового, каких то решений. Удачи тебе!
@@GopherSchool всем будут полезны и интересны конкретные кейсы и примеры решения с объяснением разных рабочих задач, а также примеры реализации разных простых сетевых сервисов. Именно практические кейсы и реализации по шагам с объяснениями.
Парень вернись! Такого контента нет в СНГ и не будет ещё долго, кто нам ещё расскажет про grpc и прочие классные штуки?)) Давай мы тебе поможем и подкинем несколько классных идей для видео!
1) Часто говорят про fasthttp фреймворк для go, якобы он в 10 раз быстрее обычного net/http, но максимум, что удаётся найти по нему это hello world. Его вообще кто-то использует в реальных проектах? И так ли он хорош, как про него рассказывают?
2) Давай больше практики) Практика лучшее обучение! Можно телеграм бота на GO (А почему нет? =) )
3) На GO можно парсить? Интересно, как бы это выглядело?)
4) Что должен знать и уметь GO backend разработчик?
5) Топ 5/10 фреймворков/библиотек которые вам стоит использовать
6) Деплой GO проекта
7) best practices
Обещаем ставить лайки, подписываться и прожимать колокольчик! =D
Нужно популяризировать GO в России, это один из лучших языков)
P.S. Я пошёл ставить лайки на все видео, а ты обещай сделать новый видос))
А в каких случаях может понадобиться возвращать интерфейс (не пустой)? Видел не раз такое, когда функция возвращает определенный интерфейс.
Сложно сказать, надо смотреть на конкретный код. Но в общем случае интерфейс удобно возвращать тогда, когда результат функции может варьироваться. Например, если это какая-нибудь фабрика. Другой пример, это когда наша ф-ия возвращает ошибку (`func blah() error {}`). Тип `error` - это как раз интерфейс из одного метода `Error()`. Это позволяет по сути создавать и возвращать из функции свои типы ошибок.
Возвращать пустой интерфейс крайне не рекомендуется. Принимать можно без проблем, с реализацией проверок внутри вашей функции.
Возвращайтесь на канал, мы Вас ждем!)
Я видел, как орёл бегает!
Жаль конечно этого добряка - хороший был человек
Вы о ком?)
@@GopherSchool , о Вас) Стоит ли ожидать камбэк, или Вы уже все по Go ?)
@@rolsonalister3052 Наоборот, в работе снова появился Go, и есть несколько идей для видео, планирую в обозримом будущем записать новые видео) Главное, чтобы не забанили ютуб)
@@GopherSchool , а вот это уже отличные новости! Будем с нетерпением ждать) Если ютуб забанят, - поищите альтернативные площадки) Главное - оповестите нас об этом в случае чего, например, в телеграмме Вашем)
Да и как вас можно поддержать/промотивировать )?
Добавил в описание видео и канала, как это можно сделать :)
7:20 Чувак, где почитать про 5 принципов? Спасиб)
Лучше всего SOLID описал сам Роберт Мартин в книге "Чистая архитектура", советую начать с неё.
@@GopherSchool Спасиб)
Автор делал отличный контент!!! Если автор ещё жив и смотрит уведомления о новом комментарии - автор, сделай подписку платную, мне не жалко за проделанную работу тебе денег кидать каждый месяц. Глядишь, таких как я наберётся человек 1000 и автор почувствует мотивацию вернуться к созданию годного контента
Спасибо! Конечно было бы неплохо иметь какую-то финансовую отдачу, но я не знаю, в каком формате это могло бы работать.
@@GopherSchool посоветовать конкретику не могу, но сам лично подписан на два канала в ютубе, где выступаю спонсором(ютуб даёт прикрутить такой функционал у себя программно): там на выбор несколько вариантов обычно: 49 руб/мес, 250-300 руб/мес и для состоятельных парней 100500 рублей/мес. На каждом уровне свои плюшки - доступ к спец контенту, закрытый чат, личное кураторство и т.д. Можно прикрутить заглавный ролик, где попросить заинтересованных подписываться как спонсоры, чтобы автор был более мотивирован продолжать начатое. Восторженных комментариев хватает, думаю всё получится
@@GopherSchool для примера есть канал The Art of Development. Тоже о Go разработке, активно привлекает подписчиков-спосоров и правильно делает
@@MichailMishutkin Спасибо, звучит интересно, надо будет разобраться с этим делом :) Хотя мне конечно как-то неудобно брать за видео деньги, сразу ответственность какая-то возникает)
@@GopherSchool добровольное спонсорство и продажи это всё таки про разное, годный контент надо поддерживать (иначе всё превратиться в 10 фактов о RESTapi с обнажёнкой на превью), и делать автора независимым в прямом смысле. Только в моей группе по Go со мной учится 271 человек, если мы уж заплатили по 70-100 тыс за среднего качества контент начального уровня, то уж за толковый, который нужен уже для устройства на работу и/или стажировку - 100-200 руб. в месяц это не плата, это слёзы благодарности)))
Жалко, перестали выпускать видео
Как тема называется vs code ?
куда пропал? я не понимал интерфейсы до твоего видео
как проверить на налл ссылку с типом интерфейсав?
Что за тема в вс код?
покажите S.O.L.I.D. в Golang.
Кто то может объяснить а зачем были введены интерфейсы бер и энимал если они нигде не использовались
Почему в sayHello greeter передаётся не по указателю?
Потому что greeter - интерфейс.
Дайте туториал как оживлять канал
Плиз
Ну вот, снова пропал:(
Я, видимо, тупой.
Всё эти примеры делают хуже. Они мне лишь подтверждают, что проще написать по функции для каждого. Будет короче и проще. Зачем это всё абстрагировать, если в итоге все получается сложнее и больше?
Или я тупой.
интерфейсы нужны для достижения полиморфизма и уменьшения количества дубляжа кода
например есть два объекта(типа) с методами save()
для того чтоб их использовать нужно написать две функции
например func structSave(s /*структура*/) {
s.save()
}
и так ты будешь описывать каждую функцию с разными типами структур
чтоб уменьшить количество разных функций с разными структурами можно использовать интерфейс
type saver interface {
save()
}
// принимает интерфейс который описывает поведение save()
func polimorf(s saver) {
s.save()
}
polimorf(/*структура с методом save*/)
Пожалуйста вернись на канал...
Что за звездочки и амперсанды? Умников попрошу проигнорировать сей вопрос.
Это указатели, ты можешь прочитать в интернете, что они делают. :)
Слабые примеры. Новичок так и не поймет смысл интерфейсов. В этих примерах возникаеют сразу вопрос: зачем усложнять, когда можно просто прописать методы?
Всё ещё не смог найти челов на русском, который бы лучше разбирался в го
а во фронте разбираешься? по мне так было б круто подключить фронт в виде vue.js допустим в видосах, пока понятно только как гошными теймплейтами рисовать фронт по видосам Тодда
Это получится ролик про Vuejs, а не про Го. Так как в go-части необходимо будет лишь отдать статичные html, js - пара строк кода. Ну и обработать http запросы, которые уже освещали в ранних роликах
Aleksey P все равно хотелось бы