golang-study/base/array/reverse/main.go

25 lines
515 B
Go
Raw Permalink Normal View History

2024-11-12 23:09:12 +08:00
package main
import "fmt"
// 反转数组
// 利用 defer 后进先出 特性实现
2024-11-12 23:15:01 +08:00
func reverse(arr []int) (reverseArr []int) {
reverseArr = make([]int, 0, len(arr))
2024-11-12 23:09:12 +08:00
for i := 0; i < len(arr); i++ {
// 多个defer 语句,后进先出执行
// 实现将数组的元素逆序存入新的数组中
defer func(v int) {
2024-11-12 23:15:01 +08:00
reverseArr = append(reverseArr, v)
2024-11-12 23:09:12 +08:00
}(arr[i])
}
return
}
func main() {
arr := [...]int{1, 2, 3, 4, 5}
fmt.Println("arr: ", arr)
fmt.Println("reverse(arr): ", reverse(arr[:]))
}