欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-02-07 10:11:38
结构体类型 type 名字 struct{},下面这段是github.com/urfave/cli包里的代码,声明了一个App的结构体类型 点操作符也可以和指向结构体的指针一起工作,如果赋给的是个指针,那也可以直接用点来操作 type User struct{ Name string } user: ......

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

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就是可以直接点操作里面的成员了

    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,
    }