本文整理汇总了Golang中flag.Value类的典型用法代码示例。如果您正苦于以下问题:Golang Value类的具体用法?Golang Value怎么用?Golang Value使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。

在下文中一共展示了Value类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: setFromEnv

func setFromEnv(into flag.Value, envVars string) bool {
    multiValued, isMulti := into.(multiValued)

    if len(envVars) > 0 {
        for _, rev := range strings.Split(envVars, " ") {
            ev := strings.TrimSpace(rev)
            if len(ev) == 0 {
                continue
            }

            v := os.Getenv(ev)
            if len(v) == 0 {
                continue
            }
            if !isMulti {
                if err := into.Set(v); err == nil {
                    return true
                }
                continue
            }

            vs := strings.Split(v, ",")
            if err := setMultivalued(multiValued, vs); err == nil {
                return true
            }
        }
    }
    return false
}

开发者ID:jault3,项目名称:mow.cli,代码行数:29,代码来源:utils.go

示例2: Var

// Var defines a flag with the specified name and usage string. The type and
// value of the flag are represented by the first argument, of type Value, which
// typically holds a user-defined implementation of Value. For instance, the
// caller could create a flag that turns a comma-separated string into a slice
// of strings by giving the slice the methods of Value; in particular, Set would
// decompose the comma-separated string into the slice.
func (c *ConfigoSet) Var(value flag.Value, name string, usage string, isFlag, isConfig bool) {
    // Remember the default value as a string; it won't change.
    config := &Configo{name, usage, value, value.String(), isFlag, isConfig}
    _, alreadythere := c.formal[name]
    if alreadythere {
        msg := fmt.Sprintf("%s flag redefined: %s", c.name, name)
        fmt.Fprintln(c.out(), msg)
        panic(msg) // Happens only if flags are declared with identical names
    }
    if c.formal == nil {
        c.formal = make(map[string]*Configo)
    }
    c.formal[name] = config
}

开发者ID:quincy,项目名称:configo,代码行数:20,代码来源:configo.go

示例3: Var

// Var sets the value, name, and usage for an environment variable in the set
func (e *Set) Var(value flag.Value, name string, usage string) {
    v := &Variable{name, usage, value, value.String()}
    _, alreadythere := e.variables[name]
    if alreadythere {
        var msg string
        if e.name == "" {
            msg = fmt.Sprintf("flag redefined: %s", name)
        } else {
            msg = fmt.Sprintf("%s flag redefined: %s", e.name, name)
        }
        fmt.Fprintln(e.out(), msg)
        panic(msg) // Happens only if flags are declared with identical names
    }
    if e.variables == nil {
        e.variables = make(map[string]*Variable)
    }
    e.variables[name] = v
}

开发者ID:doubledutch,项目名称:go-env,代码行数:19,代码来源:env.go

示例4: TestIPNet

func TestIPNet(t *testing.T) {
    testCases := []struct {
        input    string
        success  bool
        expected string
    }{
        {"0.0.0.0/0", true, "0.0.0.0/0"},
        {" 0.0.0.0/0 ", true, "0.0.0.0/0"},
        {"1.2.3.4/8", true, "1.0.0.0/8"},
        {"127.0.0.1/16", true, "127.0.0.0/16"},
        {"255.255.255.255/19", true, "255.255.224.0/19"},
        {"255.255.255.255/32", true, "255.255.255.255/32"},
        {"", false, ""},
        {"/0", false, ""},
        {"0", false, ""},
        {"0/0", false, ""},
        {"localhost/0", false, ""},
        {"0.0.0/4", false, ""},
        {"0.0.0./8", false, ""},
        {"0.0.0.0./12", false, ""},
        {"0.0.0.256/16", false, ""},
        {"0.0.0.0 /20", false, ""},
        {"0.0.0.0/ 24", false, ""},
        {"0 . 0 . 0 . 0 / 28", false, ""},
        {"0.0.0.0/33", false, ""},
    }

    for i := range testCases {
        tc := &testCases[i]
        var f flag.Value = &IPNet{}
        err := f.Set(tc.input)
        if err != nil && tc.success == true {
            t.Errorf("expected success, got %q", err)
            continue
        } else if err == nil && tc.success == false {
            t.Errorf("expected failure")
            continue
        } else if tc.success {
            if f.String() != tc.expected {
                t.Errorf("expected %q, got %q", tc.expected, f.String())
            }
        }
    }
}

开发者ID:ericcapricorn,项目名称:kubernetes,代码行数:44,代码来源:net_test.go

示例5: TestIP

func TestIP(t *testing.T) {
    testCases := []struct {
        input    string
        success  bool
        expected string
    }{
        {"0.0.0.0", true, "0.0.0.0"},
        {" 0.0.0.0 ", true, "0.0.0.0"},
        {"1.2.3.4", true, "1.2.3.4"},
        {"127.0.0.1", true, "127.0.0.1"},
        {"255.255.255.255", true, "255.255.255.255"},
        {"", false, ""},
        {"0", false, ""},
        {"localhost", false, ""},
        {"0.0.0", false, ""},
        {"0.0.0.", false, ""},
        {"0.0.0.0.", false, ""},
        {"0.0.0.256", false, ""},
        {"0 . 0 . 0 . 0", false, ""},
    }

    for i := range testCases {
        tc := &testCases[i]
        var f flag.Value = &IP{}
        err := f.Set(tc.input)
        if err != nil && tc.success == true {
            t.Errorf("expected success, got %q", err)
            continue
        } else if err == nil && tc.success == false {
            t.Errorf("expected failure")
            continue
        } else if tc.success {
            if f.String() != tc.expected {
                t.Errorf("expected %q, got %q", tc.expected, f.String())
            }
        }
    }
}

开发者ID:ericcapricorn,项目名称:kubernetes,代码行数:38,代码来源:net_test.go

最后编辑: kuteng  文档更新时间: 2021-08-23 19:14   作者:kuteng