Go基础-函数

1 定义

函数是将输入数据通过一系列算法运算之后,输出对应的结果。函数一般都是一些特定的功能块,实现某一种功能的封装,降低代码的冗余性

语法

// 关键字 函数名    函数参数          返回参数
func functionname(params paramstype) returntype{
	// 函数体
}

测试

package main

import "fmt"

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

func main() {
	a := 1
	b := 2
	c := add(a, b)
	fmt.Println("a+b=", c) // a+b= 3
}

函数的参数和返回值类型不是必须的

package main

import "fmt"

func showinfo() {
	fmt.Println("show info......")
}

func main() {
	showinfo()
}

2 参数的写法

参数不是必须的,函数可以不传参,在上面的例子中已经写了,这里不多写

含有多个相同类型的参数

如果含有多个相同类型的参数不用每个参数后面都写参数类型,直接在最后面写一个参数类型即可

package main

import "fmt"

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

func main() {
	total := sum(4, 5, 6)
	fmt.Println("total = ", total) // total =  15
}

含有多个不同类型的参数

多个不同类型的参数必须在每一个参数后面写上参数类型


package main

import "fmt"

func showinfo(name string, age int, height float64, weight float64) {
	fmt.Printf("姓名:%s\n年龄:%d\n身高:%f\n体重:%f", name, age, height, weight)
}

func main() {
	name := "科比"
	age := 43
	height := 198.0
	weight := 101.0
	showinfo(name, age, height, weight)
}
/*
姓名:科比
年龄:43
身高:198.000000
体重:101.000000
*/

3 返回值的写法

一个返回值

func funcname(params paramstype) returntype{
	// 函数体
}
package main

import "fmt"

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

func main() {
	c := add(1, 2)
	fmt.Println(c)
}

多个返回值

返回两个或多个返回值,返回值类型一定要用括号括起来

func funcname(params paramstype) (int, int) {
	return a,b
}
package main

import "fmt"

func rectangle(l, w float64) (float64, float64) {
	round := (l + w) * 2
	area := l * w
	return round, area
}

func main() {
	round, area := rectangle(3.0, 4.0)
	fmt.Println("round=", round, "area=", area)
}

命名返回值

返回值在参数后面直接定义好,就不需要在return后面写返回值了

语法

package main

import "fmt"

func rectangle(l, w float64) (round, area float64) {
	round = (l + w) * 2
	area = l * w
	return
}

func main() {
	round, area := rectangle(3.0, 4.0)
	fmt.Println("round=", round, "area=", area)
}

4 空白符

Go中使用_表示空白符,空白符可是是任何类型的的任何值,如果函数有两个返回值,我们不关心其中一个返回值

package main

import "fmt"

func rectangle(l, w float64) (round, area float64) {
	round = (l + w) * 2
	area = l * w
	return
}

func main() {
	round, _ := rectangle(3.0, 4.0)
	fmt.Println("round=", round)
}

只关心周长,不关心面积,使用空白符代替面积的位置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kobe_OKOK_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值