snippetgoCritical
How to set default values in Go structs
Viewed 0 times
howsetstructsvaluesdefault
Problem
There are multiple answers/techniques to the below question:
I have a couple of answers but further discussion is required.
- How to set default values to golang structs?
- How to initialize structs in golang
I have a couple of answers but further discussion is required.
Solution
-
Force a method to get the struct (the constructor way).
From this post:
A good design is to make your type unexported, but provide an exported constructor function like
This can be done by simply making the type itself unexported. You can export the function NewSomething and even the fields Text and DefaultText, but just don't export the struct type something.
-
Another way to customize it for you own module is by using a Config struct to set default values (Option 5 in the link). Not a good way though.
Force a method to get the struct (the constructor way).
From this post:
A good design is to make your type unexported, but provide an exported constructor function like
NewMyType() in which you can properly initialize your struct / type. Also return an interface type and not a concrete type, and the interface should contain everything others want to do with your value. And your concrete type must implement that interface of course.This can be done by simply making the type itself unexported. You can export the function NewSomething and even the fields Text and DefaultText, but just don't export the struct type something.
-
Another way to customize it for you own module is by using a Config struct to set default values (Option 5 in the link). Not a good way though.
Context
Stack Overflow Q#37135193, score: 120
Revisions (0)
No revisions yet.