[Go] gocron源碼閱讀-go語言中數組和切片的字面值初始化語法

源碼中有這麼一句,這個函數要求返回的是[]cli.Command,cli.Command類型的切片,這個地方直接使用字面值初始化了一個切片返回去了數組

return []cli.Command{command}

 

數組的字面值初始化,通常是須要指定數組的大小,可使用...三個點來代替大小,根據後面初始化的個數來計算,下面就是字面值初始化一個數組函數

    arr := [...]int{1, 2, 3}
    for i, j := range arr {
        fmt.Println(i, j)
    }

 


切片和數組很相似,而且切片的底層也是引用了一個數組,切片的字面值初始化直接不須要三個點就能夠,下面的切片存的是自定義的User類型spa

type User struct {
    Name string
}
    user := User{Name: "taoshihan"}
    mySlice := []User{user}
    for i, user := range mySlice {
        fmt.Println(i, user.Name)
    }

完整代碼:code

package main

import "fmt"

type Command struct {
    Name string
}

func main() {
    //初始化一個數組
    arr := [...]int{1, 2, 3}
    for i, j := range arr {
        fmt.Println(i, j)
    }

    //初始化一個切片,這個和源碼中的就差很少了
    command := Command{Name: "taoshihan"}
    commands := []Command{command}
    for i, command := range commands {
        fmt.Println(i, command.Name)
    }
}
相關文章
相關標籤/搜索