第四章 go语言 数组、切片和映射 (8)

slice1 := []int{1, 2, 3, 4, 5}

slice2 := []int{7, 8, 9}

copy(slice2, slice1) //只会将slice1的前3个元素赋值给slice2

fmt.Println(slice2)

slice3 := []int{1, 2, 3, 4, 5}

slice4 := []int{7, 8, 9}

copy(slice3, slice4) //将slice4的元素赋值slice3的前3个元素

fmt.Println(slice3)

打印结果:

[1 2 3]

[7 8 9 4 5]

 

9 作为函数参数时切片与数组的区别

func SetValueByArray(arr [5]int) {

    arr[0] = 100

}

 

func SetValueBySlice(slice []int) {

    slice[0] = 100

}

func main() {

    arr := [5]int{1, 2, 3, 4, 5}

    SetValueByArray(arr)

    fmt.Println(arr)  

    slice := arr[:]

    SetValueBySlice(slice)

    fmt.Println(arr)

}

//打印结果:

[1 2 3 4 5]

[100 2 3 4 5]

 

 

10字符串和byte切片

标准库中提供了4个与字符串操作相关的包:

 

功能

 

strings

 

提供了字符串查询、替换、比较、截断、拆分和合并等功能。

 

bytes

 

提供了很多与strings包类似的功能。因为字符串是只读的,逐步构建字符串会导致很多分配和复制,这种情况下,使用bytes.Buffer类型将会更有效。

 

strconv

 

提供了布尔类型、整数、浮点数和对应字符串的相互转换,还提供了双引号转义相关的转换。

 

unicode

 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxdzw.html