温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

go语言渐入佳境[11]-function2

发布时间:2020-07-21 23:53:08 阅读:187 作者:jonson_jackson 栏目:开发技术
GO开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

匿名函数

123456789101112131415161718192021222324252627282930313233
package mainimport (	"fmt"	"math")//匿名函数func main(){	//无参匿名函数	func(){		fmt.Println("jonson")	}()	//有参匿名函数	func(data int){		fmt.Println("data:",data)	}(5)	//有返回值的匿名函数	result:=func(data float64) float64{		return math.Sqrt(data)	}(9)	fmt.Println("result:",result)  //函数表达式	greet:=func(){		fmt.Println("greet jonson")	}	greet()	fmt.Printf("greet的类型是%T\n",greet)

闭包

1234567891011
func greetjonson(){	x:=0	increment:= func() int{		x++		return x	}	fmt.Println(increment())	fmt.Println(increment())}

函数作为返回值

123456
func makeGreeter() func() string{	return func() string {		return "hello jonson"	}}

闭包与函数返回值

1234567
func makeEvenGenerator() func() int{	i:=0	return func() int{		i+=2		return i	}}

callback函数作为参数

123456
func visit(numbers []int,callback func(int)){	for _,n :=range numbers{		callback(n)	}}

递归

12345678910111213141516171819202122
//  计算阶乘     5   5*4*3*2*1func factorial(x uint) uint{	if x==0{		return 1	}	return x * factorial(x-1)}// factorial(5)   //120// returns: 5 * factorial(4)// factorial(4)   /24// 	returns: 4 * factorial(3)// factorial(3)   //6// 	returns: 3 * factorial(2)// factorial(2)   //2// 	returns: 2 * factorial(1)// factorial(1)     //1// 	returns: 1 * factorial(0)// factorial(0)// 	returns: 1

所有例子

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
package mainimport (	"fmt"	"math")//匿名函数func main(){	//无参匿名函数	func(){		fmt.Println("jonson")	}()	//有参匿名函数	func(data int){		fmt.Println("data:",data)	}(5)	//有返回值的匿名函数	result:=func(data float64) float64{		return math.Sqrt(data)	}(9)	fmt.Println("result:",result)	greet:=func(){		fmt.Println("greet jonson")	}	greet()	fmt.Printf("greet的类型是%T\n",greet)	//闭包	greetjonson()	//函数作为返回值	  makejonson := makeGreeter()	  fmt.Printf("类型:%T,返回值:%v\n",makejonson,makejonson())	//闭包做为返回值	makeeven := makeEvenGenerator()	fmt.Println("makeeven i = ",makeeven())	fmt.Println("makeeven i = ",makeeven())	fmt.Println("makeeven i = ",makeeven())	//callback函数作为参数	visit([]int{1,2,3,4},func(n int){		fmt.Println(n+1)	})	//死循环	fmt.Println(factorial(5))	var i uint = 0	for ;i<20;i++{		fmt.Println(fabicc(i))	}}//闭包func greetjonson(){	x:=0	increment:= func() int{		x++		return x	}	fmt.Println(increment())	fmt.Println(increment())}//函数作为返回值func makeGreeter() func() string{	return func() string {		return "hello jonson"	}}//闭包与函数返回值func makeEvenGenerator() func() int{	i:=0	return func() int{		i+=2		return i	}}//callback函数作为参数func visit(numbers []int,callback func(int)){	for _,n :=range numbers{		callback(n)	}}//递归//  计算阶乘     5   5*4*3*2*1func factorial(x uint) uint{	if x==0{		return 1	}	return x * factorial(x-1)}//fabiccfunc fabicc(x  uint) uint{	if(x==0){		return 0	}	if(x==1){		return 1	}	return fabicc(x-2) + fabicc(x-1)}
  • 本文链接: https://dreamerjonson.com/2018/11/19/golang-11-function2/

  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 CN协议 许可协议。转载请注明出处!

go语言渐入佳境[11]-function2

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×