标准lib flag.intValue没有String方法

func (f *FlagSet) IntVar(p *int, name string, value int, usage string) {
    f.Var(newIntValue(value, p), name, usage)
}

func (f *FlagSet) Var(value Value, name string, usage string) {
    flag := &Flag{name, usage, value, value.String()}
    // ...
}

func newIntValue(val int, p *int) *intValue {
    *p = val
    return (*intValue)(p)
}

type intValue int

type Value interface {
    String() string
    Set(string) error
}

I read the flag.Int source code, and found: Standard lib flag.intValue does not implements String and Set method, I doesn't found them, how var value Value = &intValue works?

(Sorry, my native language is not English.)