[Go] gocron源码阅读-go语言中的切片和类型综合
在gocron.go文件的main函数中,有下面这一句,从这句代码中可以学习到切片和类型的综合运用
cliApp.Flags = append(cliApp.Flags, []cli.Flag{}...)
首先在go语言中定义一个类型需要使用type 名字 struct{},还可以给这个类型定义成员方法
type Taoshihan struct {
}
func (t Taoshihan) Say() string {
return "my name is taoshihan"
}
这里我就定义了Taoshihan类型,为他增加了Say方法
实例化这个类型需要 名字{},下面这个就是实例化了一个Taoshihan对象
mytao := Taoshihan{}
切片可以看成是一个可变长度的数组,声明定义一个切片可以向下面这样
var 名字 []存储的类型
var myslice []Taoshihan
我这个切片中存的是Taoshihan这个类型
往切片中添加数据需要使用append函数,下面我往切片中增加了两个数据
myslice=append(myslice,mytao,Taoshihan{})
而原代码中的三个点...,代表的是打散切片,切片中的每个元素都添加进去,在我的例子中可以这样表示
myslice=append(myslice,[]Taoshihan{}...)
[]Taoshihan{}其实就代表了另一个切片,是个空的
循环遍历切片需要使用for range循环,其中的每个t就代表了是每个加进去的对象
for _, t := range myslice {
fmt.Println(t.Say())
}
完整案例:
package main import (
"fmt"
) type Taoshihan struct {
} func (t Taoshihan) Say() string {
return "taoshihan"
} func main() {
var myslice []Taoshihan
mytao := Taoshihan{}
myslice = append(myslice, Taoshihan{}, mytao)
//这里遍历输出两次
for _, t := range myslice {
fmt.Println(t.Say())
} }
[Go] gocron源码阅读-go语言中的切片和类型综合的更多相关文章
- [Go] gocron源码阅读-go语言中的切片接口和类型综合
// getCommands func getCommands() []cli.Command { command := cli.Command{ Name: "web", Usa ...
- [Go] gocron源码阅读-go语言中数组和切片的字面值初始化语法
源码中有这么一句,这个函数要求返回的是[]cli.Command,cli.Command类型的切片,这个地方直接使用字面值初始化了一个切片返回去了 return []cli.Command{comma ...
- [Go] gocron源码阅读-go语言web框架Macaron
gocron源码中使用的是马卡龙框架,下面这个就是安装这个框架,和一般的MVC框架很像go get gopkg.in/macaron.v1git clone https://github.com/go ...
- [Go] gocron源码阅读-go语言的结构体
结构体类型 type 名字 struct{},下面这段是github.com/urfave/cli包里的代码,声明了一个App的结构体类型 type App struct { // The name ...
- [日常] gocron源码阅读-go语言的变量
变量的声明形式是这样的 var 变量名字 类型 = 表达式var ( AppVersion = "1.5" BuildDate, GitCommit string)类型可以被省略, ...
- SpringMVC源码阅读:Controller中参数解析
1.前言 SpringMVC是目前J2EE平台的主流Web框架,不熟悉的园友可以看SpringMVC源码阅读入门,它交代了SpringMVC的基础知识和源码阅读的技巧 本文将通过源码(基于Spring ...
- [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: ...
- golang源码阅读:VictoriaMetrics中的协程优先级的处理方式
在阅读VictoriaMetrics的源码的时候,读到了那么平平无奇的一段: // AddRows adds the given mrs to s. func (s *Storage) AddRows ...
随机推荐
- OC-AVAudioPlayer的使用小记
- (void)viewDidLoad { [super viewDidLoad]; //设置音乐的后台播放,注意background mode中需要勾选上 AVAudioSession *sessi ...
- 6个最优秀的微信小程序UI组件库
开发微信小程序的过程中,选择一款好用的组件库,可以达到事半功倍的效果.自从微信小程序面世以来,不断有一些开源组件库出来,下面6款就是排名比较靠前,用户使用量与关注度比较高的小程序UI组件库.还没用到它 ...
- css发展史
(接着上次博客的内容,现在我们进入css基础) 外部样式表 <link> 内部样式表 <style> 行内样式表 style (多用于JS) * css注释 ...
- Windows下同时安装python2和python3如何兼容版本
引言:因学习需要把python2和python3都安装了,为了避免使用过程中混淆版本在网上找了一些解决方案,亲测可用.方法如下: 分别下载并安装Python2.x和Python3.x. 配置环境变量. ...
- 基于ORB-SLAM2的图片识别
基于ORB-SLAM2的图片识别,其功能是首先运行ORB-SLAM2,在运行过程中调起另一个线程进行图像识别,识别成功后在图片上渲染AR中的立方体模型. 识别过程主要基于ORB-SLAM2中的BoW算 ...
- Codeforces Round #603 (Div. 2) B. PIN Codes 水题
B. PIN Codes A PIN code is a string that consists of exactly 4 digits. Examples of possible PIN code ...
- 一道常被人轻视的web前端常见面试题(JS)
本文转载自站长之家,如有侵权问题,请联系我,马上删除. 面试题是招聘公司和开发者都非常关心的话题,公司希望通过它了解开发者的真实水平和细节处理能力,而开发者希望能够最大程度地展示自己的水平(甚至超常发 ...
- Mysql如何在删库后可以不用跑路
我一直在想,地球上这么多程序员,应该有很多人在团队做项目的时候,出过很大的错误,比如说不小心删了库,活动福利字段多写了个零导致全服务器玩家领到数倍奖励,听了沙雕群友的话执行rm -rf命令. 记得有一 ...
- php 截取字符串 strstr 和strrchr
截取字符串 strstr 和strrchr 结果:(其中之一) strstr : 执行时间在0.10 - 0.19 之间 strrchr : 执行时间在0.095 - 0.19 之间 结论:从数十次执 ...
- Spring中注解方式实现IOC和AOP
1.IOC注解 1.1 IOC和DI的注解 IOC: @Component:实现Bean组件的定义 @Repository:用于标注DAO类,功能与@Component作用相当 @Service:用 ...