diff --git a/base/array/reverse/main.go b/base/array/reverse/main.go new file mode 100644 index 0000000..b3d303e --- /dev/null +++ b/base/array/reverse/main.go @@ -0,0 +1,24 @@ +package main + +import "fmt" + +// 反转数组 +// 利用 defer 后进先出 特性实现 +func reverse(arr []int) (reverse_arr []int) { + reverse_arr = make([]int, 0, len(arr)) + for i := 0; i < len(arr); i++ { + // 多个defer 语句,后进先出执行 + // 实现将数组的元素逆序存入新的数组中 + defer func(v int) { + reverse_arr = append(reverse_arr, v) + }(arr[i]) + } + + return +} + +func main() { + arr := [...]int{1, 2, 3, 4, 5} + fmt.Println("arr: ", arr) + fmt.Println("reverse(arr): ", reverse(arr[:])) +}