[Go] gocron源码阅读-go语言中的切片和类型综合
2023-02-18 15:41:49 时间
在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()) } }
相关文章
- 【Linux】curl: (60) SSL certificate problem: certificate has expired问题解决
- 【Golang】golang开发微信公众号网页授权功能
- 【Golang】golang实现简单memcache
- 【Golang】golang中time类型的before方法
- 【Golang】golang中map元素的删除和清空
- 【Golang】理解Golang中的time.Duration
- 【Golang】golang实现发送微信服务号模板消息
- 【Golang】golang实现sha256加密函数
- 【Golang】golang实现md5加密函数
- 【Golang】golang实现post请求发送form类型数据函数
- 【Golang】golang实现urlencode urldecode函数
- 【Golang】对接百度翻译API-golang版本sdk代码
- [golang] golang实现截取字符串函数SubStr
- 在线客服聊天系统源码_美观强大golang内核开发_二进制运行傻瓜式安装_附搭建教程
- [golang] 解决配置goland时候The selected directory is not a valid home for Go SDK
- [Golang] golang中使用正则表达式替换字符串
- [Golang] golang中使用正则表达式获取子字符串
- [Golang] Goland 编辑器 替换快捷键
- GOFLY智能在线客服系统更新日志: APP端历史访客分页功能更新 (2022-04-07)
- GOFLY智能在线客服系统更新日志: APP端历史访客列表增加搜索功能 (2022-04-07)