dsfykqq3403 2013-11-04 05:09
浏览 50
已采纳

在golang中标记命令行解析

I'm not sure I understand the reasoning behind this example (taken from here), nor what it is trying to communicate about the Go language:

package main

import (
    "flag"
    "fmt"
)

func main() {
    f := flag.NewFlagSet("flag", flag.ExitOnError)
    f.Bool("bool", false, "this is bool flag")
    f.Int("int", 0, "this is int flag")

    visitor := func(a *flag.Flag) {
        fmt.Println(">", a.Name, "value=", a.Value)
    }

    fmt.Println("Visit()")
    f.Visit(visitor)
    fmt.Println("VisitAll()")
    f.VisitAll(visitor)

    // set flags
    f.Parse([]string{"-bool", "-int", "100"})

    fmt.Println("Visit() after Parse()")
    f.Visit(visitor)
    fmt.Println("VisitAll() after Parse()")
    f.VisitAll(visitor)
}

Something along the lines of the setup they have but then adding a

int_val := f.get("int")

to get the named argument would seem more useful. I'm completely new to Go, so just trying to get acquainted with the language.

  • 写回答

1条回答 默认 最新

  • duanaixuan7385 2013-11-04 05:40
    关注

    This is complicated example of using flag package. Typically flags set up this way:

    package main
    
    import "flag"
    
    // note, that variables are pointers
    var strFlag = flag.String("long-string", "", "Description")
    var boolFlag = flag.Bool("bool", false, "Description of flag")
    
    func init() {
        // example with short version for long flag
        flag.StringVar(strFlag, "s", "", "Description")
    }
    
    func main() {
        flag.Parse()
        println(*strFlag, *boolFlag)
    }       
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 路易威登官网 里边的参数逆向
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程
  • ¥20 模型在y分布之外的数据上预测能力不好如何解决
  • ¥15 processing提取音乐节奏
  • ¥15 gg加速器加速游戏时,提示不是x86架构
  • ¥15 python按要求编写程序
  • ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入