昨天没有写完的 Array & Slice(上) ,今天要来把补完进度。
那我们就开始吧 ─=≡Σ(((っ゚∀゚)っ
稍微快速回忆一下 slice 的特性:
[]
定义,但不同的是不用在 []
内写上数量两种定义方法:
// 方法1
cats := []string{"BuiBui", "MeiMei"}
// 方法2
func make([]string, len, cap)
咦,方法2的 len
及 cap
又代表什麽呢?
slice 里面包含了三样东西
以下资讯举例,当 len 元素有几个就会长出几个 0
(因为 []T = []int
,如果是 string 就会是 )。
// len = 3, cap = 3
gopher := make([]int, 3) // => [0, 0, 0]
// len = 0, cap = 5
gopher := make([]int, 0, 5) // => []
需要特别注意的是,len
的长度不能够超过 cap
,不然会出现错误。
// 酱是不行的
gopher := make([]int, 5, 0) // => error!
所以当我们在使用 slice 时,其实是透过 slice 指向某个记忆体位置内的 array。
如果想要新增 slice 的元素,就需要使用 append
这个方法:
cats := []string{"BuiBui", "MeiMei"}
cats = append(cats, "Peko")
登愣!次元切割刀!
拿摸厉害,尼块缩缩看怎麽用R~
既然 slice 叫做 slice,那麽他应该就能够做切割!
num := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}
num = num[1:3]
fmt.Println(num, len(num), cap(num)) // => [2, 3] len = 2, cap = 8
num := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}
num = num[:3]
fmt.Println(num, len(num), cap(num)) // => [1, 2, 3], len = 3, cap = 9
num := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}
num = num[3:]
fmt.Println(num, len(num), cap(num)) // => [4, 5, 6, 7, 8, 9], len = 6 , cap = 6
slice 的介绍到这结束了,如果有任何问题欢迎与我告知 :)
<<: Day 8: 人工智慧在音乐领域的应用 (有趣的AI演算法二)
>>: Day 8 : 案例分享(3.1) 会计模组-基础科目及传票、报表
当一个大型程序交由数个不同专员开发时,用到相同的类别名称是很有可能的,当这种情况发生时,为了确保程序...
前言 今天来说一说今年参加的心得 以及铁人赛之後的规划 心得 铁人赛两年前有参加过一次 但今年很不一...
安装passport套件 安装套件cmd执行以下 composer require laravel/...
透过 audio tag 设定背景音乐 class BGM { constructor() { th...
最近在一个偶然的情况下接触到 Gmail API 因此找了一个周末来好好研究一下该怎麽操作他 以下是...