defer 陷阱

2020-05-05  本文已影响0人  蛐蛐儿阳
package main

import "fmt"

type Slice []int

func NewSlice() Slice {
    return make(Slice, 0)
}

func (s* Slice) Add(elem int) *Slice {
    *s = append(*s, elem)
    fmt.Print(elem)
    fmt.Println()
    return s

}

func main() {

    s := NewSlice()

    defer s.Add(1).Add(2).Add(3)

    s.Add(5)

}

输出
1
2
5
3

.的优先级大于defer, defer只返回最后要执行命令

上一篇 下一篇

猜你喜欢

热点阅读