美文网首页
Array slice

Array slice

作者: cdz620 | 来源:发表于2020-03-03 00:24 被阅读0次

[TOC]

Array

  • Array赋值:会复制所有元素
  • 函数传递:会复制所有元素,如果要修改Array的值,传递指针
  • Array的数组长度是类型的一部分,[10]int 与[20]int是不同的类型

slice

  • slice是引用类型变量,赋值与函数传递,不会复制所有元素。
  • slice的结构:指针(指向某个array),length 与 capacity
  • append会动态改变slice的容量的大小,具体的增长策略依赖于具体的实现,依赖于多个因素,比如类型,原始长度大小;可能各个版本的go实现不一样。具体看代码:https://github.com/golang/go/blob/master/src/runtime/slice.go
  • 切片,length与capacity 决定,slice 的使用场景优于Array
  • nil slice 可以append

slice interval

https://play.golang.org/p/mLgfw0eZ52j

package main

import (
    "fmt"
)

func main() {
    x := [3]string{"Hello", "Hello", "Hello"}
    s := x[:]
    s[1] = "xxxx"
    fmt.Println(x, s)
}
# output
# [Hello xxxx Hello] [Hello xxxx Hello]

相关文章

网友评论

      本文标题:Array slice

      本文链接:https://www.haomeiwen.com/subject/ycfikhtx.html