码迷,mamicode.com
首页 > 其他好文 > 详细

golang 函数笔记

时间:2016-02-01 18:57:53      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:

一、概念

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

二、函数的声明及使用

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 函数笔记

标签:

原文地址:http://www.cnblogs.com/loveyx/p/5175830.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!