06 | 函数

函数

函数可以没有参数,也可以接受多个参数,当连续两个或多个函数的已命名形参类型相同时,除最后一个类型以外,其它都可以省略。

package main

import "fmt"

func add(x, y int) int {
    return x + y
}

func main() {
    fmt.Println(add(42, 13))
}
  • 函数可以返回多个返回值
package main

import "fmt"

func swap(x, y string) (string, string) {
    return y, x
}

func main() {
    a, b := swap("hello", "world")
    fmt.Println(a, b)
}
  • Go 的返回值可被命名,它们会被视作定义在函数顶部的变量(不推荐使用)
package main

import "fmt"

func split(sum int) (x, y int) {
    x = sum * 4 / 9
    y = sum - x
    return
}

func main() {
    fmt.Println(split(17))
}
  • 匿名函数
  • 函数是一等公民
  • 函数是一等公民
  • 所有参数都是值传递,slice map channel会有传引用的感觉
  • 函数可以作为变量的值
  • 函数可以作为参数的返回值
  • 计算机程序的构造和解释(书推荐)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容