前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[Go] gocron源码阅读-go语言中的切片和类型综合

[Go] gocron源码阅读-go语言中的切片和类型综合

作者头像
唯一Chat
发布2019-11-15 12:12:36
3050
发布2019-11-15 12:12:36
举报
文章被收录于专栏:陶士涵的菜地陶士涵的菜地

在gocron.go文件的main函数中,有下面这一句,从这句代码中可以学习到切片和类型的综合运用

代码语言:javascript
复制
cliApp.Flags = append(cliApp.Flags, []cli.Flag{}...)

首先在go语言中定义一个类型需要使用type 名字 struct{},还可以给这个类型定义成员方法

代码语言:javascript
复制
type Taoshihan struct {
}
func (t Taoshihan) Say() string {
    return "my name is taoshihan"
}

这里我就定义了Taoshihan类型,为他增加了Say方法

实例化这个类型需要 名字{},下面这个就是实例化了一个Taoshihan对象

代码语言:javascript
复制
mytao := Taoshihan{}

切片可以看成是一个可变长度的数组,声明定义一个切片可以向下面这样 var 名字 []存储的类型

代码语言:javascript
复制
var myslice []Taoshihan

我这个切片中存的是Taoshihan这个类型

往切片中添加数据需要使用append函数,下面我往切片中增加了两个数据

代码语言:javascript
复制
myslice=append(myslice,mytao,Taoshihan{})

而原代码中的三个点...,代表的是打散切片,切片中的每个元素都添加进去,在我的例子中可以这样表示

代码语言:javascript
复制
myslice=append(myslice,[]Taoshihan{}...)

[]Taoshihan{}其实就代表了另一个切片,是个空的

循环遍历切片需要使用for range循环,其中的每个t就代表了是每个加进去的对象

代码语言:javascript
复制
for _, t := range myslice {
    fmt.Println(t.Say())
}

完整案例:

代码语言:javascript
复制
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())
    }

}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-11-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档