mirror of
https://gitee.com/shikong-sk/golang-study
synced 2025-02-23 07:22:16 +08:00
docs: defer 实现数组反转
This commit is contained in:
parent
d79c328cbb
commit
be8e51d920
24
base/array/reverse/main.go
Normal file
24
base/array/reverse/main.go
Normal file
@ -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[:]))
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user