選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

49 行
911 B

package arg
import "fmt"
// FormatNumber format number.
type FormatNumber int
// format argument.
const (
NumberFormatDecimal FormatNumber = iota + 1
NumberFormatPercent
NumberFormatPerMille
NumberFormatEngineering
NumberFormatScientific
)
// NumberOption configure number argument.
type NumberOption func(*Number)
// WithNumberFormat sets format number.
func WithNumberFormat(format FormatNumber) NumberOption {
return func(n *Number) { n.Format = format }
}
// Number argument.
type Number struct {
Key string
Value interface{}
Format FormatNumber
}
// Configure number.
func (n Number) Configure(opts ...NumberOption) Number {
for _, o := range opts {
o(&n)
}
return n
}
// Val gets number value.
func (n Number) Val() interface{} {
return n.Value
}
// String number to string.
func (n Number) String() string {
return fmt.Sprintf("number key: %s, value: %v", n.Key, n.Value)
}