From be8e51d92043b8f186c6bf84ae163bd209ff5f6d Mon Sep 17 00:00:00 2001 From: shikong <919411476@qq.com> Date: Tue, 12 Nov 2024 23:09:12 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=20defer=20=E5=AE=9E=E7=8E=B0=E6=95=B0?= =?UTF-8?q?=E7=BB=84=E5=8F=8D=E8=BD=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- base/array/reverse/main.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 base/array/reverse/main.go 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[:])) +}