Будь как профессионал! Go #20. Методы структур в Golang. Struct methods in Go. Go уроки, go курс

preview_player
Показать описание
ПОДДЕРЖИ выпуск видео на канале 😊 (КАЖДОМУ скажу спасибо в сообществе!)

Поддержать меня через PAYEER(номер счёта) - P1073625154 👍

Если нет возможности через PayPal или Payeer, то через криптовалюту 👌

Номера крипто-кошельков: 😁
BTC - bc1q2ygvmaszq9k82f72ezt8klte2axutpmfsqk6pk 🪙
ETH - 0x9aC2Ea60d78012dEE883B3752363b1ebC6243987 💸
SOL - A66WYJLQLubzdj7hTW5nnYZ2LCDjGs7coHqC8Ze9QeRu ✨
Polygon - 0x9aC2Ea60d78012dEE883B3752363b1ebC6243987 🔥

✔ Привет)

Сегодня мы закончим работу со структурами и научимся писать собственные методы для обработки структур!
А это очень круто и реально упростит работу со структурами в твоём проекте!

Ну и конечно ставь лайк, подписывайся на канал и обязательно пиши своё мнение в комментариях!)
Рекомендации по теме
Комментарии
Автор

Очень круто и интересно! Доступно и ясно, спасибо!

yury
Автор

перед просмотром видео подписался на канал, посмотрел и поставил лайк

andreichemeris
Автор

Спасибо! Объясняешь и учишь гораздо лучше, чем учат на платных курсах.

_vukivur
Автор

Спасибо все доступно и понятно... Можно еще обойтись без цикла сортировкой среза и возвратом последнего наибольшего элемента .

vyacheslavTr
Автор

Ты настолько крут, что тебя смотрят 101 процент пользователей (92.1 + 8.9)

trillerperviu
Автор

мог написать просто return u.age >= 18, получилось бы тоже самое

SergeyHramenko
Автор

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

untraff
Автор

6:02 блок else if лишний, достаточно того то по умолачанию значение false и 1 проверка в результате которой может быть true

solopovsergey
Автор

Йо, спасибо за урок! Будут задачки по golang?

gundun
Автор

понадобилось 4 видео, немного статей и пара недель вникания, чтобы хоть как-то понять, что такое методы. Спасибо.

vitaliikaverin
Автор

Все супер но мне кажеться лучше срез называть изначально СЛАЙС

sozdanie-saytov
Автор

Выходя из послендего примера high минемальное равно нулю?

alexusta
Автор

5:42 - или я чего то не понимаю или одно из двух....
зачем там else if? У нас же только два варианта может быть. Если первое условие не выполнено, то возвращаем второй вариант.
А с учетом того, что значение false присвоено в начале метода, то достаточно просто if.
А так получается лишняя проверка, да еще и переназначение переменной того же значения, которое она уже и так имела.
Или я чего то недопонял?

NovgorodskyLeatherCraft
Автор

Спасибо за урок. У меня возник вопрос. Может я что-то упускаю, но зачем в методе isElder else if, да и вообще зачем там две переменные и условные операторы? Не проще ли было бы сразу вернуть результат сравнения (return u.age >= 18)?

mr_jedi
Автор

зачем фукнкциями менять значение стурктуры? Если можно проще: name := "Den". Зачем так изголяться?

tyfqosk
Автор

ошибки в каждой функции. много лишнего кода. много переопределений переменных без причин. для начинающих может и подойдет, для jun+ точно нет, это уровень начинающего джуна, и то с натяжкой

thegoldmedia
Автор

Не очень понял для чего создавать переменную isTrue.
Можно же просто:
func (u user) getOuts() bool {
ag := u.age
if ag < 18 {
return false
} else {
return true
}
}

shodya
Автор

package human1

import "errors"

type Hum struct {
age int
status string
name string
}

func (h *Hum) SetAge(age int) (int, error, string) {
err := errors.New("Неправильный возраст")
if age > 150 || age < 0 {
return 0, err, ""
} else {
switch {
case age >= 0 && age < 10:
h.status = "kid"
h.age = age
return h.age, nil, h.status
case age >= 10 && age < 20:
h.status = "tinager"
h.age = age
return h.age, nil, h.status
case age >= 20 && age < 60:
h.status = "adult"
h.age = age
return h.age, nil, h.status
case age >= 60 && age <= 150:
h.status = "old"
h.age = age
return h.age, nil, h.status
}
}
return 0, nil, ""
}

func (h *Hum) SetName(name string) string {
h.name = name
return h.name
}

func (h *Hum) Srznach(srez []Hum) int {
sr := 0
for i := 0; i < len(srez); i++ {
sr += srez[i].age
}
sr = sr / len(srez)
return sr
}
func (h *Hum) TryAdd(srez *[]Hum, newhum Hum) bool {
var k int
srez_pointer := *srez
for i := 0; i < len(*srez); i++ {
if srez_pointer[i] == newhum {
k++
}
}
if k == 0 {
*srez = append(*srez, newhum)
return true
} else {
return false
}
}

func Human(age int, name string) Hum {
return Hum{
age: age,
name: name,
}
}

ihnzvmo