飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 1975|回复: 0

[Go] go语言 函数的例子

[复制链接]
  • TA的每日心情
    开心
    2023-2-7 08:49
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    发表于 2018-12-7 22:57:53 | 显示全部楼层 |阅读模式
    以前学习c语言的时候,觉得c语言写的玩意儿就是一堆函数的相互嵌套,想想头大,后来学c++后,发现类也是个好东西,可以抽象很多概念
    如下是go的函数例子,相对而言比c++这种古老级语言,花花肠子更多,如下:
    [Golang] 纯文本查看 复制代码
    package basicuse
    
    import (
    	"fmt"
    	"math"
    )
    
    func adder() func(int) int {
    	sum := 0
    	return func(x int) int {
    		sum += x
    		return sum
    	}
    }
    
    //TestReturnFunction 函数返回函数,函数也是一种值
    func TestReturnFunction() {
    	//函数也是值
    	hypot := func(x, y float64) float64 {
    		return math.Sqrt(x*x + y*y)
    	}
    
    	fmt.Println(hypot(3, 4))
    
    	// 函数的闭包
    	//TODO 函数的闭包的理解
    	fmt.Println(" function-value 闭包")
    	pos, neg := adder(), adder()
    	for i := 0; i < 10; i++ {
    		fmt.Println(
    			pos(i),
    			neg(-2*i),
    		)
    	}
    }

    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表