最近要做Apache Thrift相关的项目。大概看了一下,觉得不难。Thrift目前已经至此和Go语言了。照着官方提供的一个例子在学。周五搞了一上午,终于编译通过了。下午去读例子源码,发现一个从来没见过的包——flag。

public static void main(String []args)func main()

虽然Go不像大Java,在主函数里面直接就能获取到命令行参数,但是Go通过flag包获取到的参数类型,不像Java那样,只能是String类型。

StringVar
func String(name string, value string, usage string) *string
func StringVar(p *string, name string, value string, usage string)
Parse
package main

import (
    "flag"
)

var strFlag = flag.String("s", "", "Description")
var boolFlag = flag.Bool("bool", false, "Description of flag")

func main() {
    flag.Parse()
    println(*strFlag, *boolFlag)
}
Stringname-name {NAME}

运行命令及结果:

$ go run testflag.go -s 123
123 false

现在在GitHub上面新建了一个Go语言相关用例的库,里面都是平时的测试代码。从今天开始添加。

https://github.com/mnhkahn/go_code

参考文献