Czy to możliwe dzięki golangowi, że metoda dynamicznie czyści wartości instancji struktury? btw Im new to golang.Czy mogę dynamicznie usuwać wartości instancji typu struct w golang?
type A struct {
Name string
Level int
}
type B struct {
Skill string
}
func main() {
a := A{"Momo", 1}
b := B{"Starfall"}
// outputs
// {"Momo", 1}
// {"Starfall"}
clear(a)
clear(b)
// outputs
// { , 0}
// { }
}
func clear(v interface{}) {
// some code
}
Jak nie podajesz wskaźnika, funkcja, która zwraca nic, nie może wyczyścić a, ponieważ nie zna a, tylko kopię wartości. –
Wystarczy przypisać wartość zerową, taką jak ta 'a = A {}', która jest znacznie prostsza i bardziej czytelna. – Volker
technicznie wartość interfejsu * jest * typem odniesienia. Tak więc wyraźna funkcja, jak to napisał, może usunąć strukturę. Jednak musiałby dużo refleksji. O wiele łatwiej jest po prostu użyć wartości zerowej, jak powiedzieli inni. –