闭包

作者: 特仑苏_Cloud | 来源:发表于2018-03-26 10:11 被阅读0次

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

    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"))
    }
    

    相关文章

      网友评论

          本文标题:闭包

          本文链接:https://www.haomeiwen.com/subject/jkblcftx.html