Go语言函数

Go语言函数

Go语言函数定义方式:

func function_name( [parameter list] ) [return_types] {
   函数体
}

函数定义解析:

  • func:函数由 func 开始声明
  • function_name:函数名称,参数列表和返回值类型构成了函数签名。
  • parameter list:参数列表,参数就像一个占位符,当函数被调用时,你可以将值传递给参数,这个值被称为实际参数。参数列表指定的是参数类型、顺序、及参数个数。参数是可选的,也就是说函数也可以不包含参数。
  • return_types:返回类型,函数返回一列值。return_types 是该列值的数据类型。有些功能不需要返回值,这种情况下 return_types 不是必须的。
  • 函数体:函数定义的代码集合。
import "fmt"

func eval(a, b int, op string)int{
	switch op {
	case "+":
		return a + b
	case "-":
		return a - b
	case "*":
		return a * b
	case "/":
		return a / b
	default:
		panic("unsupported operation:" + op)
	}
}
func main() {
	fmt.Println(eval(3, 4, "*"))
}

Go语言函数可以返回多个返回值:

import "fmt"
func div(a, b int)(q, r int){
	return a / b, a % b
}
func main() {
	q, r := div(13, 3)
	fmt.Println(q, r)
    // _表示不需要第二个返回值
	q, _ := div(a, b)
}
package main

import "fmt"

func eval(a, b int, op string) (int, error){
	switch op {
	case "+":
		return a + b,nil
	case "-":
		return a - b,nil
	case "*":
		return a * b,nil
	case "/":
		return a / b,nil
	default:
		return 0, fmt.Errorf("unsupported operation:%s",op)
	}
}
func main() {
	fmt.Println(eval(13, 3, "/"))
	if result, err := eval(13, 3, "x"); err != nil{
		fmt.Println("Error",err)
	}else{
		fmt.Println(result)
	}
}

运行结果:

4 <nil>
Error unsupported operation:x

可变参数列表

可变参数列表可以用于接收不定长度的参数。

实例:

package main

import "fmt"

func sum(numbers ...int) int{
	s := 0
	for i := range numbers{
		s += numbers[i]
	}
	return s
}
func main() {
	fmt.Println(sum(1,2,3,4,5))
}

运行结果:

15
  • GO语言函数
    • 返回值类型写在后面
    • 可返回多个值
    • 函数作为参数
    • 没有默认参数,可选参数
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值