闭包

2018-03-26  本文已影响0人  特仑苏_Cloud

一个函数和与其相关的引用环境组合而成的实体

package main

import(
    "fmt"
)

func Addr() func(int) int{
    var x int
    return func(d int) int{
        x += d
        return x
    }
}


func main(){
    f := Addr()
    fmt.Println(f(1))
    fmt.Println(f(100))
    fmt.Println(f(1000))
}

输出:
1
101
1101
package main

import(
    "fmt"
    "strings"
)

func makeSuffixFunc(suffix string) func(string) string{
    return func(name string) string{
        if !strings.HasSuffix(name,suffix){
            return name + suffix
        }
        return name
    }
}

func main(){
    func1:=makeSuffixFunc(".bmp")
    func2:=makeSuffixFunc(".jpg")
    fmt.Println(func1("test"))
    fmt.Println(func2("test"))
}
上一篇下一篇

猜你喜欢

热点阅读