闭包

以前看js的时候,老是说,闭包闭包,但是一直搞不清楚,感觉就像个函数。最近看go,看到这篇文章,感觉有点明了。 Go by Example 中文:闭包 在我看来,闭包就是匿名函数使用了外部变量。 在wiki里的描述: 在计算机科学中,闭包(英语:Closure),又称词法闭包(Lexical Closure)或函数闭包(function closures),是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。 在没有闭包的语言中,变量的生命周期只限于创建它的环境。但在有闭包的语言中,只要有一个闭包引用了这个变量,它就会一直存在。清理不被任何函数引用的变量的工作通常由垃圾回收完成 package main import “fmt” func intSeq() func() int { i := 0 return func() int { i = i + 1 return i } } func main() { nextInt := intSeq(); fmt.Println(nextInt()) fmt.Println(nextInt()) fmt.Println(nextInt()) fmt.Println(nextInt()) fmt.Println(nextInt()) fmt.Println(“——-“) nextInt2 := intSeq(); fmt.Println(nextInt2()) fmt.Println(“——-“) }

Published
Categorized as go, language

堆排序

关键:k[i]>=k[2i]&&k[i]>=k[2*i+1] 父节点大于子节点这是大根堆。 堆可以被看成是一棵树,结点在堆中的高度可以被定义为从本结点到叶子结点的最长简单下降路径上边的数目;定义堆的高度为树根的高度。我们将看到,堆结构上的一些基本操作的运行时间至多是与树的高度成正比,为O(lgn) 利用堆排序,分两步: 1构建堆 2获取堆顶 package main import ( “fmt” ) func main() { arr := []int{0, 1, 2, 3, 4, 5, 6, 7} for length := len(arr); length > 0; length– { buildBigHeap(arr, length) fmt.Print(arr) change(&arr[0], &arr[length-1]) fmt.Print(“***”) fmt.Print(arr) fmt.Println(“———–“) } } /** 建立大顶堆 */ func buildBigHeap(arr []int, len int) { //for parent… Continue reading 堆排序

Published
Categorized as algorithm

搭建WordPress博客

环境: os: lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch Distributor ID: CentOS Description: CentOS Linux release 7.4.1708 (Core) Release: 7.4.1708 Codename: Core 查看是否安装有php yum list |grep php 查看php版本 php -v 卸载旧版php yum remove php yum remove php* 安装php7 安装相关rpm rpm -Uvh http://mirror.centos.org/centos/7/extras/x86_64/Packages/epel-release-7-9.noarch.rpm rpm -Uvh http://repo.webtatic.com/yum/el7/x86_64/RPMS/webtatic-release-7-3.noarch.rpm rpm -Uvh http://mirror.centos.org/centos/7/os/x86_64/Packages/centos-release-7-4.1708.el7.centos.x86_64.rpm (RPM 可以到 https://pkgs.org/ 查找) 我安装的模块: yum install php70w yum… Continue reading 搭建WordPress博客

Published
Categorized as web

Hello world!

Welcome to WordPress. This is your first post. Edit or delete it, then start writing!