Go闭包案例

45 阅读1分钟

代码:

package main

import (
 "path"
 "fmt"
)

func confirmFileType(suf string) func(string)string{
	return func(name string) string{
		if path.Ext(name) == ""{
			return name + suf
		}else{
			return "文件已经有后缀:"+ name
		}
	}
}
func main() {
	jpgFUnc:=confirmFileType(".jpg")
	txtFUnc:=confirmFileType(".txt")
	fmt.Println(jpgFUnc("test.png"))
	fmt.Println(txtFUnc("test"))

}

解析: 闭包定义:引用外部变量的函数称为闭包。 案例中makeSuffixFunc函数的返回值为一个函数,返回的函数调用了makeSuffixFunc函数中的suffix变量,完成了闭包操作。

(以上内容为原创,转载请注明出处©南雨北斗)