美文网首页
9.闭包(重点)

9.闭包(重点)

作者: 三人行大道 | 来源:发表于2020-02-02 20:41 被阅读0次
package main

import (
    "fmt"
    "strings"
)

 判断以什么结尾,如果不是后面加一个后缀
func makeSuffix(suffix string) func(string) string { // 以suffix结尾
    return func(name string) string {
        if !strings.HasSuffix(name, suffix) {
            return name + suffix
        }
        return name
    }
}

func main() {
    fileTest := makeSuffix("文件名处理后")
    fmt.Println(fileTest("winter"))

    fmt.Println(makeSuffix("卧槽无情")("plus"))
}

接着闭包


func AddUpper() func (int) int {
    var n int = 10
    return func (x int) int {
        n = n + x
        return n
    }
}

//细节说明
//1.AddUpper 是一个函数,返回的数据类型是 fun (int) int
//2.返回的是一个匿名函数, 但是这个匿名函数引用到函数外的n,因此这个匿名函数就和n形成一 个整体,构成闭包。
//3.大家可以这样理解: 闭包是类, 函数是操作,n 是字段。函数和它使用到 n 构成闭包
//4.当我们反复的调用 f 函数时,因为 n 是初始化一次,因此每调用一次就进行累计。
//5.我们要搞清楚闭包的关键,就是要分析出返回的函数它使用(引用)到哪些变量,因为函数和它引
//用到的变量共同构成闭包。
//6.对上面代码的一个修改,加深对闭包的理解

func AddUpper2() func (int) int {
    var n int = 20
    var str string = "hello"

    return func (x int) int {
        n = n + x
        str += string(36)
        fmt.Println("str=", str)
        return n
    }
}

未完待续

相关文章

  • 9.闭包(重点)

    接着闭包 未完待续

  • 轻松理解JavaScript闭包

    闭包机制是JavaScript的重点和难点,本文希望能帮助大家轻松的学习闭包 一、什么是闭包? 闭包就是可以访问另...

  • javascript学习日记之闭包

    闭包是学习javascript重点,最初接触到闭包时感觉到有点困难。当然学习闭包也是非常重要一个环节。 词法作用域...

  • 闭包之我的理解

    闭包是javascript的一个难点,也是一个重点,很多高级应用都需要用到闭包。在学习闭包的过程中看了不少书和大牛...

  • 面试涉及的知识点

    csshtml重点:javascript(闭包,作用域,高级特性) 重点:es6 async ,作用域,模块化...

  • swift-闭包

    闭包 闭包定义 闭包简化 - 尾随闭包 闭包参数 闭包返回值 闭包的循环引用

  • 9. 装饰器和闭包

    [TOC] 装饰器 闭包函数 思考练习 要计算这段代码的结果,首先需要具备“python中一切皆对象”的思想。在p...

  • 闭包,闭包,闭包

    1、这家伙到底是什么? 网上关于这个的讨论的太多了太多了,有各种的举例子,但是大部分还在寻找这个答案的小伙伴对于变...

  • 闭包-Closures [swift 5.1]

    闭包的语法 尾随闭包 闭包逃离 自动闭包

  • Day7 闭包(Closures)

    本页包含内容:• 闭包表达式• 尾随闭包• 值捕获• 闭包是引用类型• 逃逸闭包• 自动闭包 1、闭包表达式 闭包...

网友评论

      本文标题:9.闭包(重点)

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