警告
本文最后更新于 2020-12-03,文中内容可能已过时。
#1. 问题
1.1 需求
a := []int{1, 2, 3, 4, 5}
,slice 删除大于 3 的数字
#2. 解决
方法 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
package main
import "fmt"
func main() {
a := []int{1, 2, 3, 4, 5}
for i := 0; i < len(a); i++ {
if a[i] > 3 {
a = append(a[:i], a[i+1:]...)
i--
}
}
fmt.Println(a)
}
|
方法 2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
package main
import "fmt"
func main() {
a := []int{1, 2, 3, 4, 5}
j := 0
for _, v := range a {
if v <= 3 {
a[j] = v
j++
}
}
a = a[:j]
fmt.Println(a)
}
|
方法 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
package main
import "fmt"
func main() {
a := []int{1, 2, 3, 4, 5}
j := 0
q := make([]int, len(a))
for _, v := range a {
if v <= 3 {
q[j] = v
j++
}
}
q = q[:j] // q is copy with numbers >= 0
fmt.Println(q)
}
|