
@tgstat_bot
2020 <channel name>
и популярный пост https://t.me/oleg_log/2967
Size: a a a
func main() {В спеке Go указано, что присваивание x типа V к переменной типа T валидно в случае, если V и T основаны на одинаковых типах и T — не именованный тип ("x's type V and T have identical underlying types and at least one of V or T is not a defined type."). Псевдонимы типов не считются именованными типами, так что мы можем принимать в аргумент n любую кастуемую структуру.
printName(Cat{"Whiskey"})
printName(Dog{"Chappie"})
}
type Cat struct { Name string }
type Dog struct { Name string }
type named = struct { Name string }
func printName(n named) {
fmt.Println(n.Name)
}
Cat
/Dog
в printName
их не надо явно приводить к named
.=
и будем вам счастье)for k, v := range foo {или что-то похожее, где "захватывается" значение в кложуре. Есть даже пропозал, что давайте от этого уйдём (в го2, когдатотам) https://github.com/golang/go/issues/20733
go func() { run(k,v) }()
}