Sobes.tech
Senior

What is wrong with initializing structures without named fields (positional initialization)?

sobes.tech AI

Answer from AI

Positional initialization of structs in Go (without specifying field names) has several disadvantages:

  • Vulnerability to errors when changing the order of fields: if the order of fields in the struct changes, positional initialization can lead to incorrect value assignment.
  • Poor readability: without field names, it's hard to understand which value corresponds to which, especially if the struct is large.
  • Difficulties when adding new fields: adding new fields to the struct requires adjusting all places with positional initialization.

Therefore, it is recommended to use named initialization, for example:

type Person struct {
    Name string
    Age  int
}

p := Person{Name: "Alice", Age: 30} // clear and safe

Unlike:

p := Person{"Alice", 30} // positional initialization, less safe
What is wrong with initializing structures without… - sobes.tech