DP
по хорошему, a b с d надо проверять на валидность, если мы не хотим словить nil pointer exception
Size: a a a
DP
ЛА
RS
ЛА
RS
DP
RS
ЛА
DP
s
baz = ? f.Foo.Bar.Baz
var baz *Baz
if assert(f.Foo.Bar.Baz) {
baz = f.Foo.Bar.Baz
}
AR
RS
baz = ? f.Foo.Bar.Baz
var baz *Baz
if assert(f.Foo.Bar.Baz) {
baz = f.Foo.Bar.Baz
}
RS
bool возвращать?RS
v, ok :=RS
type Val struct { Value float64 }
type Bar struct { Baz map[string][]Val }
type Foo struct { Bar *Bar }
var m map[string]string
var s []int64
var c chan struct{}
var foo *Foo
v, ok := ? m[“key”] // v string
v, ok := ? s[2] // v int64
v, ok := ? <-c // v struct{}
v, ok := ? foo.Bar // v *Bar
v, ok := ? foo.Bar.Baz // map[string]Val
v, ok := ? foo.Bar.Baz[“key”][10].Value // v float64RS
v, ok := f.Bar.Baz