golang 函数笔记

loveyx · · 1255 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

一、概念

函数可以让我们将一个语句序列打包为一个单元,然后可以从程序中其它地方多次调用。函数的机制可以让我们将一个大的工作分解为小的任务,这样的小任务可以让不同程序员在不同时间、不同地方独立完成。一个函数同时对用户隐藏了其实现细节。由于这些因素,对于任何编程语言来说,函数都是一个至关重要的部分。

二、函数的声明及使用

package main

import (
    "fmt"
)

func main() {
    say("hello")
}

func say(info string) {
    fmt.Println("Say:", info)
}

三、多返回值函数

package main

import (
    "fmt"
)

func main() {
    id, name := get()
    fmt.Println(id, name)
}

func get() (int, string) {
    return 1, "frod"
}

四、匿名函数

package main

import (
    "fmt"
)

func main() {
    // 传递一个匿名函数
    res := sum(func() (int, int) { return 1, 2 })
    fmt.Println(res)
}

// 匿名函数当作函数的参数
func sum(f func() (int, int)) int {
    a, b := f()
    return a + b
}

五、匿名函数-闭包函数

package main

import (
    "fmt"
)

func main() {
    // sum() 内部是一个闭包函数, 闭包函数是立即执行的
    res := sum(func() (int, int) { return 1, 2 }())
    fmt.Println(res)
}

func sum(a, b int) int {
    return a + b
}

六、匿名函数-嵌套,意义不是特别大,只是为了基础学习

package main

import (
    "fmt"
)

func main() {
    res := func() int {
        a, b := func() (int, int) { return 1, 2 }()
        return a + b
    }()
    fmt.Println(res)
}

七、函数-可变参数

package main

import (
    "fmt"
)

func main() {
    fmt.Println(sum(1, 2, 3, 4, 5, 6))
}

func sum(vals ...int) int {
    var sum int
    for v := range vals {
        sum += v
    }
    return sum
}

有疑问加站长微信联系(非本文作者)

本文来自:博客园

感谢作者:loveyx

查看原文:golang 函数笔记

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1255 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传