Лайк за старание. Можно было рассказать дополнительно, что методы не только у структур могут быть *** Пример #1 метод структур *** package main import ( "fmt" ) const ( adultAge uint8 = 18 ) type User struct { Name string Age uint8 } func (u User) isAdult() bool { return u.Age >= adultAge } func main() { u := User{"Vasya", 18} fmt.Println(u.isAdult()) } *** Пример #2 метод кастомных типов *** package main import "fmt" const ( adultAge uint8 = 18 ) type Age uint8 type User struct { Name string Age Age } // пример метода Age func (a Age) isAdult() bool { // приводим переменную adultAge к типу Age return a >= Age(adultAge) } func main() { u := User{"Vasya", 18} fmt.Println(u.Age.isAdult()) }
Все говорят как всё понятно и круто, это конечно радужные но бесполезные комментарии. Не затронул очень важный момент. В предыдущем видео ты используешь оператор разыменования, чтобы менять переменные, но в случае структуры ты его не использууешь, а всё равно параметры структуры меняются. Ничего не сказал об этом. И никто не спросил "почему так" а ведь без этого не может быть понимания.
5:42 - или я чего то не понимаю или одно из двух.... зачем там else if? У нас же только два варианта может быть. Если первое условие не выполнено, то возвращаем второй вариант. А с учетом того, что значение false присвоено в начале метода, то достаточно просто if. А так получается лишняя проверка, да еще и переназначение переменной того же значения, которое она уже и так имела. Или я чего то недопонял?
Спасибо за урок. У меня возник вопрос. Может я что-то упускаю, но зачем в методе isElder else if, да и вообще зачем там две переменные и условные операторы? Не проще ли было бы сразу вернуть результат сравнения (return u.age >= 18)?
ошибки в каждой функции. много лишнего кода. много переопределений переменных без причин. для начинающих может и подойдет, для jun+ точно нет, это уровень начинающего джуна, и то с натяжкой
Не очень понял для чего создавать переменную isTrue. Можно же просто: func (u user) getOuts() bool { ag := u.age if ag < 18 { return false } else { return true } }
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
Подпишись 👍
подписался
Очень круто и интересно! Доступно и ясно, спасибо!
перед просмотром видео подписался на канал, посмотрел и поставил лайк
Спасибо! Объясняешь и учишь гораздо лучше, чем учат на платных курсах.
какой курс по го ты купил который показался тебе хуже?
От Ката Академии@@untraff
@@_vukivur2164 в итоге как тебе ката? Кто-то хвалит их
@@_vukivur2164 удивительно, а я считал что у Ката - одни из лучших курсов
Лайк за старание. Можно было рассказать дополнительно, что методы не только у структур могут быть
***
Пример #1 метод структур
***
package main
import (
"fmt"
)
const (
adultAge uint8 = 18
)
type User struct {
Name string
Age uint8
}
func (u User) isAdult() bool {
return u.Age >= adultAge
}
func main() {
u := User{"Vasya", 18}
fmt.Println(u.isAdult())
}
***
Пример #2 метод кастомных типов
***
package main
import "fmt"
const (
adultAge uint8 = 18
)
type Age uint8
type User struct {
Name string
Age Age
}
// пример метода Age
func (a Age) isAdult() bool {
// приводим переменную adultAge к типу Age
return a >= Age(adultAge)
}
func main() {
u := User{"Vasya", 18}
fmt.Println(u.Age.isAdult())
}
Спасибо все доступно и понятно... Можно еще обойтись без цикла сортировкой среза и возвратом последнего наибольшего элемента .
6:02 блок else if лишний, достаточно того то по умолачанию значение false и 1 проверка в результате которой может быть true
Все говорят как всё понятно и круто, это конечно радужные но бесполезные комментарии. Не затронул очень важный момент. В предыдущем видео ты используешь оператор разыменования, чтобы менять переменные, но в случае структуры ты его не использууешь, а всё равно параметры структуры меняются. Ничего не сказал об этом. И никто не спросил "почему так" а ведь без этого не может быть понимания.
В точку)
Интересные примеры👍
Ну ты бро и выдал базу с двумя ифами и доп переменной, прямо по профессиональным заветам индусских гуру
Отлично!
5:42 - или я чего то не понимаю или одно из двух....
зачем там else if? У нас же только два варианта может быть. Если первое условие не выполнено, то возвращаем второй вариант.
А с учетом того, что значение false присвоено в начале метода, то достаточно просто if.
А так получается лишняя проверка, да еще и переназначение переменной того же значения, которое она уже и так имела.
Или я чего то недопонял?
Ты настолько крут, что тебя смотрят 101 процент пользователей (92.1 + 8.9)
🤣
мог написать просто return u.age >= 18, получилось бы тоже самое
Чтоб не забывал как пользоваться указателями)
Круто🎉🎉🎉
Спасибо за урок. У меня возник вопрос. Может я что-то упускаю, но зачем в методе isElder else if, да и вообще зачем там две переменные и условные операторы? Не проще ли было бы сразу вернуть результат сравнения (return u.age >= 18)?
подписан👍🙂
"срез его очка" ахахах
спасибооо
Выходя из послендего примера high минемальное равно нулю?
понадобилось 4 видео, немного статей и пара недель вникания, чтобы хоть как-то понять, что такое методы. Спасибо.
Йо, спасибо за урок! Будут задачки по golang?
Насчёт задач пока не знаю, но делать больше видео по Go планирую)
@@BRO-IT ждем больше видео по Go ;)
Профессионалы - это кто, интересно?
ru.m.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%84%D0%B5%D1%81%D1%81%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB
@@BRO-ITtrainee получается тоже профессионал, если умеет пользоваться структурами? :)
@@standarttechnology4477 Профессионал, но не достаточно высокого уровня
Кто видит баг?
зачем фукнкциями менять значение стурктуры? Если можно проще: name := "Den". Зачем так изголяться?
ошибки в каждой функции. много лишнего кода. много переопределений переменных без причин. для начинающих может и подойдет, для jun+ точно нет, это уровень начинающего джуна, и то с натяжкой
6/10
?
Не очень понял для чего создавать переменную isTrue.
Можно же просто:
func (u user) getOuts() bool {
ag := u.age
if ag < 18 {
return false
} else {
return true
}
}
func (u user) getOuts() bool {
return u.age >= 18
}
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