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

  • 2019 年 11 月 15 日
  • 笔记

结构体类型 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,      }