[Go] gocron源码阅读-go语言的结构体
结构体类型 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[]),
        HelpName:     filepath.Base(os.Args[]),
        Usage:        "A new cli application",
        UsageText:    "",
        Version:      "0.0.0",
        BashComplete: DefaultAppComplete,
        Action:       helpCommand.Action,
        Compiled:     compileTime(),
        Writer:       os.Stdout,
    }
[Go] gocron源码阅读-go语言的结构体的更多相关文章
- [Go] gocron源码阅读-go语言web框架Macaron
		
gocron源码中使用的是马卡龙框架,下面这个就是安装这个框架,和一般的MVC框架很像go get gopkg.in/macaron.v1git clone https://github.com/go ...
 - [Go] gocron源码阅读-go语言中数组和切片的字面值初始化语法
		
源码中有这么一句,这个函数要求返回的是[]cli.Command,cli.Command类型的切片,这个地方直接使用字面值初始化了一个切片返回去了 return []cli.Command{comma ...
 - [Go] gocron源码阅读-go语言中的切片接口和类型综合
		
// getCommands func getCommands() []cli.Command { command := cli.Command{ Name: "web", Usa ...
 - [Go] gocron源码阅读-go语言中的切片和类型综合
		
在gocron.go文件的main函数中,有下面这一句,从这句代码中可以学习到切片和类型的综合运用 cliApp.Flags = append(cliApp.Flags, []cli.Flag{}.. ...
 - [日常] gocron源码阅读-go语言的变量
		
变量的声明形式是这样的 var 变量名字 类型 = 表达式var ( AppVersion = "1.5" BuildDate, GitCommit string)类型可以被省略, ...
 - [Go] gocron源码阅读-通过第三方cli包实现命令行参数获取和管理
		
gocron源码中使用的是下面这个第三方包来实现的,下面就单独的拿出来测试以下效果,和官方flag包差不多 go get github.com/urfave/cli package main impo ...
 - [Go] gocron源码阅读-空接口类型interface{}
		
gocron源代码中的Action那个地方,就是个空接口类型Action interface{},可以传递任意类型进去,这里是传了个函数进去 command := cli.Command{ Name: ...
 - [日常] gocron源码阅读-使用go mod管理依赖源码启动gocron
		
从 Go1.11 开始,golang 官方支持了新的依赖管理工具go modgo mod download: 下载依赖的 module 到本地 cachego mod edit: 编辑 go.modg ...
 - [Go] gocron源码阅读-判断是否使用root用户执行
		
判断是linux系统,并且uid为0,allowRoot是通过命令行传参传进来的,通过flag包解析出来的,可以使用go run node.go -h看到这些参数 && !allowR ...
 
随机推荐
- Linux 释放cache
			
sysc 将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node.已延迟的块 I/O 和读写映射文件 echo 3 > /proc/sys/vm/drop_caches To free p ...
 - OpenCV:获取图像当中某一点的坐标
			
import numpy as np image=np.zeros((300,300,3),dtype='uint8') (cx,cy)=image.shape[1]//2,image.shape[0 ...
 - 【分享】git全套视频教程
			
1.课件 https://www.cnblogs.com/wfd360/p/10891140.html 2.教程列表 3.教程下载 3.1.直接在线学习 学习地址:https://study.163. ...
 - Linux-3.14.12内存管理笔记【构建内存管理框架(4)】
			
虽说前文分析内存管理框架构建的实现,提到了find_zone_movable_pfns_for_nodes(),但这里不准备复述什么,仅针对required_movablecore和required_ ...
 - 《Linux/UNIX系统编程手册》第56章 SOCKET:介绍
			
关键词: 1. socket基础 一个典型的客户端/服务器场景中,应用程序使用socket进行通信的方式如下: 各个应用程序创建一个socket.socket是一个允许通信的设备,两个应用程序都需要用 ...
 - JUC-0-JUC简介
			
Java JUC 简介 在 Java 5.0 提供了 java.util.concurrent (简称 JUC )包,在此包中增加了在并发编程中很常用 的实用工具类,用于定义类似于线程的自定义子 ...
 - Day10 - Python基础10 socketserver 实现并发
			
本节内容: 1.实例tcp的并发 2.看源代码继承关系 3.详解:ThreadingTCPServer的过程 4.tcp和udp的request 不同 5.基于udp的并发实现 1.实例tcp并发 s ...
 - 201871010102-常龙龙《面向对象程序设计(java)》第一周学习总结
			
博文正文开头:(3分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/p/11435127.html 这个作业的要求在哪里 https://e ...
 - Django celery  使用
			
0.安装包 cachetools 3.1.1 celery 3.1.26.post2 celery-with-redis 3.0 certifi 2019.9.11 Django 2.2.6 djan ...
 - for(var i in items) 和 for(var i;i<items.length;i++) 区别
			
前者循环的是属性,后者循环的才是数组. 若项目中对数组属性进行了扩展,那切记不能使用前者,否则在循环数组时扩展的函数体也会被当做数据返回. var data = { p1:1, p2:"b& ...