Về cơ bản, cách duy nhất (mà tôi biết) để lặp qua các giá trị của các trường của a struct
là như sau:
type Example struct {
a_number uint32
a_string string
}
//...
r := &Example{(2 << 31) - 1, "...."}:
for _, d:= range []interface{}{ r.a_number, r.a_string, } {
//do something with the d
}
Tôi đã tự hỏi, nếu có một cách tốt hơn và linh hoạt hơn để đạt được []interface{}{ r.a_number, r.a_string, }
, vì vậy tôi không cần phải liệt kê từng tham số riêng lẻ, hoặc cách khác, có cách nào tốt hơn để lặp qua một cấu trúc không?
Tôi đã cố gắng xem qua reflect
gói hàng, nhưng tôi đã va phải một bức tường, vì tôi không biết phải làm gì sau khi lấy ra reflect.ValueOf(*r).Field(0)
.
Cảm ơn!