AS
Нужно это чтобы иметь логи всех "дочерних" сервисов в одном месте.
Но т.к. сервисов очень много, руками править каждый сервис не вариант
Size: a a a
AS
AP
v := ? f.Bar.Baz[“mapkey”][5].Fuzzv := func() *Fuzz {
if f == nil || f.Bar == nil {
return nil
}
x, ok := f.Bar.Baz[“mapkey”]
if !ok {
return nil
}
if len(x) < 6 {
return nil
}
return x[5].Fuzz
}()AK
v := ? f.Bar.Baz[“mapkey”][5].Fuzzv := func() *Fuzz {
if f == nil || f.Bar == nil {
return nil
}
x, ok := f.Bar.Baz[“mapkey”]
if !ok {
return nil
}
if len(x) < 6 {
return nil
}
return x[5].Fuzz
}()AP
v := ? f.Bar.Baz[“mapkey”][5].Fuzzv := func() *Fuzz {
if f == nil || f.Bar == nil {
return nil
}
x, ok := f.Bar.Baz[“mapkey”]
if !ok {
return nil
}
if len(x) < 6 {
return nil
}
return x[5].Fuzz
}()RS
?? возвращает zero-value в случае если доступ не удаётся, то читать сиё довольно простоAP
RS
AP
AP
RS
? не трогает данные, он только лишь читает. Если ему не удаётся прочесть - он возвращает zero-value, falseRS
map[key]RS
RS
AP
AK
? не трогает данные, он только лишь читает. Если ему не удаётся прочесть - он возвращает zero-value, false? какую проблему он решает? Помимо сокращения кол-ва строк кода? (что само по себе проблемой не является, т.к. код пишется людьми для людей). Я просто читаю этот оператор в примере выше примерно так: "Дорогой компилятор, вот вложенный вызов, я понятия не имею, что я делаю, разберись пожалуйста и верни мне zero-value если что-то там внутри пойдет не так".AP
AP
AP
PF
RS
zero-value, fase