zoukankan      html  css  js  c++  java
  • [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())
        }
    
    }
  • 相关阅读:
    hadoop与spark的处理技巧(六)聚类算法(3)LDA
    hadoop与spark的处理技巧(一)Top N处理技巧
    从零开始学Python 三(网络爬虫)
    Could not get JDBC Connection--java
    idea函数被调用
    人工智能-我们应该了解什么(一)
    从零开始学Python 二
    从零开始学Python 一
    java8 简便的map和list操作
    Could not autowire. No beans of 'xxxx' type found的错误
  • 原文地址:https://www.cnblogs.com/taoshihan/p/11863270.html
Copyright © 2011-2022 走看看