美文网首页
有意思的闭包行为

有意思的闭包行为

作者: 孔宣 | 来源:发表于2018-07-14 14:56 被阅读0次

看一段代码先

package main

import (
    "strings"
    "fmt"
)

func shortenString(message string) func() string {
    return func() string {
        messageSlice := strings.Split(message, " ")
        wordLength := len(messageSlice)
        if wordLength < 1 {
            return "Nothing Left!"
        } else {
            messageSlice = messageSlice[:(wordLength - 1)]
            message = strings.Join(messageSlice, " ")
            return message
        }
    }
}

func main() {
    myString := shortenString("Welcome to concurrency in Go!...")
    fmt.Println(myString())
    fmt.Println(myString())
    fmt.Println(myString())
    fmt.Println(myString())
    fmt.Println(myString())
    fmt.Println(myString())
}

运行结果如下:
Welcome to concurrency in
Welcome to concurrency
Welcome to
Welcome

有没有发现,多次运行同一个闭包函数,其修改的上层函数传参值是同一个值

相关文章

  • 有意思的闭包行为

    看一段代码先 运行结果如下:Welcome to concurrency inWelcome to concurr...

  • Optional

    guard 的好处 闭包行为 Never 关键字

  • 闭包和js的回收机制

    闭包的概念子函数使用父函数变量的行为就是闭包。 闭包的作用1.可以访问内部作用域的变量(在外部调用子函数,因为子函...

  • swift-闭包

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

  • 闭包-Closures [swift 5.1]

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

  • Python闭包

    闭包 = 环境变量 + 函数 调用闭包内部的环境变量 闭包的经典误区 闭包与非闭包实现人类走路 非闭包 闭包

  • (9) python之闭包

    闭包闭包 = 函数 + 环境变量(函数定义的时候) 一个最简单的闭包 闭包不受外部变量影响 非闭包 闭包 闭包 只...

  • javascript闭包详解

    跟我念 bi 闭 bao包 ,闭包的闭,闭包的包。。 闭包的简介 在计算机科学中,闭包(英语:Closure),又...

  • 闭包,闭包,闭包

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

  • Gradle开发-Groovy闭包

    # 闭包 闭包的基础知识 闭包的使用 闭包 this,owner,delegate 的理解 总结 ## 闭包的基础...

网友评论

      本文标题:有意思的闭包行为

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