[Go] gocron源码阅读-go语言的结构体

2019-11-15 12:12:57 浏览数 (2)

结构体类型 type 名字 struct{},下面这段是github.com/urfave/cli包里的代码,声明了一个App的结构体类型

代码语言:javascript复制
type App struct {
    // The name of the program. Defaults to path.Base(os.Args[0])
    Name string
    // Full name of command for help, defaults to Name
    HelpName string
    // Description of the program.
    Usage string
    // Text to override the USAGE section of help
    UsageText string
    // Description of the program argument format.
    ArgsUsage string
    // Version of the program
    Version string
    // Description of the program
    Description string
    // List of commands to execute
    Commands []*Command
    // List of flags to parse
    Flags []Flag
}

点操作符也可以和指向结构体的指针一起工作,如果赋给的是个指针,那也可以直接用点来操作 type User struct{ Name string } user:=&User{Name:"taoshihan"} fmt.Println(user.Name)

cliApp := cli.NewApp() cliApp.Name = "gocron" cliApp.Usage = "gocron service" 这个cli包下的NewApp方法返回的是*App类型,因此cliApp就是可以直接点操作里面的成员了

代码语言:javascript复制
    return &App{
        Name:         filepath.Base(os.Args[0]),
        HelpName:     filepath.Base(os.Args[0]),
        Usage:        "A new cli application",
        UsageText:    "",
        Version:      "0.0.0",
        BashComplete: DefaultAppComplete,
        Action:       helpCommand.Action,
        Compiled:     compileTime(),
        Writer:       os.Stdout,
    }

0 人点赞