高朗片

切片是一种灵活且可扩展的数据结构,用于实现和管理数据集合。切片由多个相同类型的元素组成。切片是动态数组的一部分,可以根据您的需要增加和缩小。像数组一样,切片是可索引的并且具有长度。切片具有容量和长度属性。


如何在彩票中心下载中创建一个空切片?

要声明保存切片的变量的类型,请使用一对空的方括号,然后是切片将容纳的元素的类型。

package main

import (
	"fmt"
	"reflect"
)

func main() {
	var intSlice []int
	var strSlice []string

	fmt.Println(reflect.ValueOf(intSlice).Kind())
	fmt.Println(reflect.ValueOf(strSlice).Kind())
}
创建整数和字符串类型的空切片。
slice
slice

如何在彩票中心下载中使用Make函数创建切片?

可以使用内置功能创建切片 采用。使用make时,一个选择是指定切片的长度。仅指定长度时,切片的容量是相同的。

package main

import (
	"fmt"
	"reflect"
)

func main() {
	var intSlice = 采用([]int, 10)        // when length and capacity is same
	var strSlice = 采用([]string, 10, 20) // when length and capacity is different

	fmt.Printf("intSlice \tLen: %v \tCap: %v\n", len(intSlice), cap(intSlice))
	fmt.Println(reflect.ValueOf(intSlice).Kind())

	fmt.Printf("strSlice \tLen: %v \tCap: %v\n", len(strSlice), cap(strSlice))
	fmt.Println(reflect.ValueOf(strSlice).Kind())
}
您也可以分别指定长度和容量。
intSlice        Len: 10         Cap: 10
slice
strSlice        Len: 10         Cap: 20
slice

如何使用切片文字使用值初始化切片?

切片文字包含空括号,后跟切片将包含的元素类型,以及每个元素用花括号括起来的初始值列表。

package main

import "fmt"

func main() {
	var intSlice = []int{10, 20, 30, 40}
	var strSlice = []string{"India", "Canada", "Japan"}

	fmt.Printf("intSlice \tLen: %v \tCap: %v\n", len(intSlice), cap(intSlice))
	fmt.Printf("strSlice \tLen: %v \tCap: %v\n", len(strSlice), cap(strSlice))
}

如何在彩票中心下载中使用new关键字创建Slice?

可以使用new关键字声明切片,然后在方括号中声明容量,然后声明切片将包含的元素类型。

package main

import (
	"fmt"
	"reflect"
)

func main() {
	var intSlice = new([50]int)[0:10]

	fmt.Println(reflect.ValueOf(intSlice).Kind())
	fmt.Printf("intSlice \tLen: %v \tCap: %v\n", len(intSlice), cap(intSlice))
	fmt.Println(intSlice)
}
slice
intSlice        Len: 10         Cap: 50
[0 0 0 0 0 0 0 0 0 0]

如何在彩票中心下载中使用append函数将项目添加到Slice?

要将项目添加到切片的末尾,请使用append()方法。

package main

import "fmt"

func main() {
	a := 采用([]int, 2, 5)
	a[0] = 10
	a[1] = 20
	fmt.Println("Slice A:", a)
	fmt.Printf("Length is %d Capacity is %d\n", len(a), cap(a))

	a = append(a, 30, 40, 50, 60, 70, 80, 90)
	fmt.Println("Slice A after appending data:", a)
	fmt.Printf("Length is %d Capacity is %d\n", len(a), cap(a))
}
如果基础切片中有足够的容量,则将元素放置在最后一个元素之后,并且长度会增加。但是,如果没有足够的容量,则会创建一个新的slice,将所有现有元素复制过来,将新元素添加到末尾,然后返回新的slice。
Slice A: [10 20]
Length is 2 Capacity is 5
Slice A after appending data: [10 20 30 40 50 60 70 80 90]
Length is 9 Capacity is 12

如何在彩票中心下载中访问切片项?

您可以通过参考索引编号访问切片项目。

package main

import "fmt"

func main() {
	var intSlice = []int{10, 20, 30, 40}

	fmt.Println(intSlice[0])
	fmt.Println(intSlice[1])
  fmt.Println(intSlice[0:4])
}

如何在彩票中心下载中更改切片项的值?

要更改特定项目的值,请参考索引号。

package main

import "fmt"

func main() {
	var strSlice = []string{"India", "Canada", "Japan"}
  fmt.Println(strSlice)

  strSlice[2] = "Germany"
  fmt.Println(strSlice)
}
[India Canada Japan]
[India Canada Germany]

如何从彩票中心下载中的Slice中删除元素?

创建了RemoveIndex函数以从字符串切片中删除特定项目。

package main

import "fmt"

func main() {
	var strSlice = []string{"India", "Canada", "Japan", "Germany", "Italy"}
	fmt.Println(strSlice)

	strSlice = RemoveIndex(strSlice, 3)
	fmt.Println(strSlice)
}

func RemoveIndex(s []string, index int) []string {
	return append(s[:index], s[index+1:]...)
}
[India Canada Japan Germany Italy]
[India Canada Japan Italy]

如何在彩票中心下载中将一个切片项目复制到另一个切片中?

内建 复制 函数用于将数据从一个切片复制到另一个切片。

package main

import "fmt"

func main() {
	a := []int{5, 6, 7} // Create a smaller slice
	fmt.Printf("[Slice:A] Length is %d Capacity is %d\n", len(a), cap(a))

	b := 采用([]int, 5, 10) // Create a bigger slice
	复制(b, a)              // Copy function
	fmt.Printf("[Slice:B] Length is %d Capacity is %d\n", len(b), cap(b))

	fmt.Println("Slice B after 复制ing:", b)
	b[3] = 8
	b[4] = 9
	fmt.Println("Slice B after adding elements:", b)
}
[Slice:A] Length is 3 Capacity is 3
[Slice:B] Length is 5 Capacity is 10
Slice B after 复制ing: [5 6 7 0 0]
Slice B after adding elements: [5 6 7 8 9]

如何在彩票中心下载中切片元素?

切片是一种计算快速的方法,可以有条不紊地访问部分数据。

package main

import "fmt"

func main() {
	var countries = []string{"india", "japan", "canada", "australia", "russia"}

	fmt.Printf("Countries: %v\n", countries)

	fmt.Printf(":2 %v\n", countries[:2])

	fmt.Printf("1:3 %v\n", countries[1:3])

	fmt.Printf("2: %v\n", countries[2:])

	fmt.Printf("2:5 %v\n", countries[2:5])

	fmt.Printf("0:3 %v\n", countries[0:3])

	fmt.Printf("Last element: %v\n", countries[4])
	fmt.Printf("Last element: %v\n", countries[len(countries)-1])
	fmt.Printf("Last element: %v\n", countries[4:])

	fmt.Printf("All elements: %v\n", countries[0:len(countries)])

	fmt.Printf("Last two elements: %v\n", countries[3:len(countries)])
	fmt.Printf("Last two elements: %v\n", countries[len(countries)-2:len(countries)])

	fmt.Println(countries[:])
	fmt.Println(countries[0:])
	fmt.Println(countries[0:len(countries)])
}
Countries: [india japan canada australia russia]
:2 [india japan]
1:3 [japan canada]
2: [canada australia russia]
2:5 [canada australia russia]
0:3 [india japan canada]
Last element: russia
Last element: russia
Last element: [russia]
All elements: [india japan canada australia russia]
Last two elements: [australia russia]
Last two elements: [australia russia]
[india japan canada australia russia]
[india japan canada australia russia]
[india japan canada australia russia]

如何在彩票中心下载中迭代切片?

您可以使用 对于 循环。

package main

import "fmt"

func main() {
	var strSlice = []string{"India", "Canada", "Japan", "Germany", "Italy"}

	fmt.Println("\n---------------Example 1 --------------------\n")
	对于  index, element := range strSlice {
		fmt.Println(index, "--", element)
	}

	fmt.Println("\n---------------Example 2 --------------------\n")
	对于  _, value := range strSlice {
		fmt.Println(value)
	}

	j := 0
	fmt.Println("\n---------------Example 3 --------------------\n")
	对于  range strSlice {
		fmt.Println(strSlice[j])
		j++
	}
}

如何在彩票中心下载中将切片附加到现有切片?

用于附加切片的三点...省略号的用法。

package main

import "fmt"

func main() {
	var slice1 = []string{"india", "japan", "canada"}
	var slice2 = []string{"australia", "russia"}

	slice2 = append(slice2, slice1...)
}

如何检查彩票中心下载的Slice中是否存在项目?

要确定切片中是否存在指定的项目,请迭代切片项目并检查使用条件。

package main

import (
	"fmt"
	"reflect"
)

func main() {
	var strSlice = []string{"India", "Canada", "Japan", "Germany", "Italy"}
	fmt.Println(itemExists(strSlice, "Canada"))
	fmt.Println(itemExists(strSlice, "Africa"))
}

func itemExists(slice interface{}, item interface{}) bool {
	s := reflect.ValueOf(slice)

	if s.Kind() != reflect.Slice {
		panic("Invalid data-type")
	}

	对于  i := 0; i < s.Len(); i++ {
		if s.Index(i).Interface() == item {
			return true
		}
	}

	return false
}