type flagInterface … // StringArrayFlag defines a flag with the specified name and usage string. // The return value is the address of a `StringArrayFlags` variable that stores the repeated values of the flag. func StringArrayFlag(f flagInterface, name string, usage string) *StringArrayFlags { … } type StringArrayFlags … // String returns a string representation of `StringArrayFlags` func (i *StringArrayFlags) String() string { … } // Set appends a value to `StringArrayFlags` func (i *StringArrayFlags) Set(value string) error { … }