golang 函数笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang 函数笔记相关的知识,希望对你有一定的参考价值。

一、概念

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

二、函数的声明及使用

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
}

以上是关于golang 函数笔记的主要内容,如果未能解决你的问题,请参考以下文章

代码片段 - Golang 实现简单的 Web 服务器

代码片段 - Golang 实现集合操作

Golang笔记

golang 函数笔记

Go-Golang学习总结笔记

golang学习笔记-func函数