当前位置: 首页 > news >正文

Go基础-函数

文章目录

  • 1 定义
  • 2 参数的写法
  • 3 返回值的写法
  • 4 空白符

1 定义

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

语法

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

测试

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

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

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

2 参数的写法

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

含有多个相同类型的参数

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

package mainimport "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 mainimport "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 := 43height := 198.0weight := 101.0showinfo(name, age, height, weight)
}
/*
姓名:科比
年龄:43
身高:198.000000
体重:101.000000
*/

3 返回值的写法

一个返回值

func funcname(params paramstype) returntype{// 函数体
}
package mainimport "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 mainimport "fmt"func rectangle(l, w float64) (float64, float64) {round := (l + w) * 2area := l * wreturn round, area
}func main() {round, area := rectangle(3.0, 4.0)fmt.Println("round=", round, "area=", area)
}

命名返回值

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

语法

package mainimport "fmt"func rectangle(l, w float64) (round, area float64) {round = (l + w) * 2area = l * wreturn
}func main() {round, area := rectangle(3.0, 4.0)fmt.Println("round=", round, "area=", area)
}

4 空白符

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

package mainimport "fmt"func rectangle(l, w float64) (round, area float64) {round = (l + w) * 2area = l * wreturn
}func main() {round, _ := rectangle(3.0, 4.0)fmt.Println("round=", round)
}

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

http://www.lryc.cn/news/13023.html

相关文章:

  • AC的改进算法——TRPO、PPO
  • 【C++学习】list的使用及模拟实现
  • 动态规划专题精讲1
  • PPO(proximal policy optimization)算法
  • ElasticSearch基本使用
  • windows微软商店下载应用失败/下载故障的解决办法;如何在网页上下载微软商店的应用
  • MySQL进阶篇之InnoDB存储引擎
  • 商标侵权行为的种类有哪些
  • Similarity-Preserving KD(ICCV 2019)原理与代码解析
  • 在Linux和Windows上安装seata-1.6.0
  • 兼职任务平台收集(二)分享给有需要的朋友们
  • 目标检测三大数据格式VOC,YOLO,COCO的详细介绍
  • SpringBoot实现统一返回接口(除AOP)
  • ChatGpt - 基于人工智能检索进行论文写作
  • 实例三:MATLAB APP design-多项式函数拟合
  • springboot多种方式注入bean获取Bean
  • Markdown及其语法详细介绍(全面)
  • 在Linux和Windows上安装sentinel-1.8.5
  • 面试攻略,Java 基础面试 100 问(十)
  • Zero-shot(零次学习)简介
  • 51单片机简易电阻电感电容RLC测量仪仿真设计
  • [软件工程导论(第六版)]第6章 详细设计(课后习题详解)
  • 【2.19】算法题2:贪心算法、动态规划、分治
  • 【Redis】Redis 发布订阅通信模式 ( 发布订阅模式 | 订阅频道 | 发布消息 | 接收消息 )
  • VNCTF 2023复现
  • python基础知识有哪些需要背(记住是基础知识)我是初学者
  • Linux下TCP连接断开后不释放的解决办法
  • 1.关于嵌入式开发软件工程师的理解
  • 1760字,让你拿捏 [‘列表‘]
  • A562基于android的养老APP