VisitAll visits the flags in lexicographical order or in primordial order if f.SortFlags is false, calling fn for each. It visits all flags, even those not set.
(fn func(*Flag))
| 302 | // in primordial order if f.SortFlags is false, calling fn for each. |
| 303 | // It visits all flags, even those not set. |
| 304 | func (f *FlagSet) VisitAll(fn func(*Flag)) { |
| 305 | if len(f.formal) == 0 { |
| 306 | return |
| 307 | } |
| 308 | |
| 309 | var flags []*Flag |
| 310 | if f.SortFlags { |
| 311 | if len(f.formal) != len(f.sortedFormal) { |
| 312 | f.sortedFormal = sortFlags(f.formal) |
| 313 | } |
| 314 | flags = f.sortedFormal |
| 315 | } else { |
| 316 | flags = f.orderedFormal |
| 317 | } |
| 318 | |
| 319 | for _, flag := range flags { |
| 320 | fn(flag) |
| 321 | } |
| 322 | } |
| 323 | |
| 324 | // HasFlags returns a bool to indicate if the FlagSet has any flags defined. |
| 325 | func (f *FlagSet) HasFlags() bool { |