Go函数

package main
import "fmt"
//函数 变量作用域
//定义全局变量var num int = 10
//定义函数func testGlobal() {
    fmt.Println("Global:", num)}
func testGlobal1() {    num := 100    //1先在自己函数体中查找    //2函数体中找不到就找外层的全局变量    
fmt.Println("Global:", num)}
//函数作为参数
func add(x, y int) int {    return x + y}func clac1(x, y int, op func(int, int) int) int {    return op(x, y)}
func main() {    
testGlobal()    //外层不能访问到内层函数的内部变量   
testGlobal1()
    //变量i只是在for循环中生效 外层访问不到for语句块中的变量    
 for i := 0; i < 5; i++ {        
 fmt.Println(i)    }
    //函数可以作为变量    
    abc := testGlobal   
     fmt.Printf("%T\n", abc)    
     abc()
    r1 := clac1(10, 20, add)   
     fmt.Println(r1)}
package main
import "fmt"
//定义一个函数它的返回值是一个函数
func a() func() {    name := "alex"    return func() {        fmt.Println("hello", name)    }}
func b(name string) func() {    return func() {        fmt.Println("hello", name)    }}
//匿名函数
func main() {    func() {        fmt.Println("匿名函数")    }()    
//闭包 = 函数 + 外层变量的引用    
r := a()    
r() //相当于执行了a函数内部的匿名函数
w := b("harold")  
 w()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值