厚土Go学习笔记 | 05. 函数
时间:2022-05-06
本文章向大家介绍厚土Go学习笔记 | 05. 函数,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
函数可以没有参数,也可以有多个参数。
package main
import(
"fmt"
)
//有两个参数的函数
func add(x,y int) int {
return x + y
}
//没有参数的函数
func isay() string{
return "I say the number is"
}
//主函数
func main(){
fmt.Println(isay(), add(2, 5))
}
是不是奇怪add函数的参数的写法?
你没看错,Go语言可以这样写。如果多个参数都是同一个数据类型的话,前面的参数可以略写数据类型,只要最后一个写类型就可以了。
(x int, y int)
等同于(x,y int)
【注意】Go语言里,数据类型都写在变量名之后。
Go语言里,函数还可以有任意数量的返回值,这给程序设计提供了很大的便利。
package main
import(
"fmt"
)
//有两个参数的函数
func add(x,y int) int {
return x + y
}
//没有参数的函数
func isay() string{
return "I say the number is"
}
//多个返回值的函数
func swap(x,y string) (string, string, string) {
return y, x, "!!!"
}
func main(){
fmt.Println(isay(), add(2, 5))
fmt.Println(swap("world", "Hello"))
}
新增加的swap函数返回了三个字符串,不但交换了参数的顺序,还给出了一个"!!!"的返回值。
函数还可以“命名返回值”,这样的写法,在return后可以不写任何代码。函数体如下:
func split(sum int) (x,y int) {
x = sum * 4 / 9
y = sum - x
return
}
这样没有参数的return,返回各个返回变量的当前值。这种用法被称为“裸”返回。
【注意】这样的用法最好只在较短的函数体使用。长的函数会影响代码的可读性。返回值的名称,应当具有一定的意义,可增加代码的可读性。
完整代码
package main
import(
"fmt"
)
//有两个参数的函数
func add(x,y int) int {
return x + y
}
//没有参数的函数
func isay() string{
return "I say the number is"
}
//多个返回值的函数
func swap(x,y string) (string, string, string) {
return y, x, "!!!"
}
//命名返回值
func split(sum int) (x,y int) {
x = sum * 4 / 9
y = sum - x
return
}
func main(){
fmt.Println(isay(), add(2, 5))
fmt.Println(swap("world", "Hello"))
fmt.Println(split(197))
}
- 今天研究了一下手机通信录管理系统(C语言)
- Android软件测试Monkey测试工具
- 程序员面试50题(4)—把字符串转换成整数[算法]
- 程序员面试50题(3)—翻转句子中单词的顺序[算法]
- H5动画开发快车道
- Open vSwith模拟网关实现不同子网的互通
- 总结了一些指针易出错的常见问题(二)
- 史上最清晰的红黑树讲解(上)
- C++之new/delete/malloc/free详解
- 验证 结构体指针与自增运算符
- Spring Cloud中Hystrix 线程隔离导致ThreadLocal数据丢失下篇
- ONOS1.3.0集群实验
- Spring Boot下的TDD(测试驱动开发)
- MySQL的索引是什么?怎么优化?
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PAT (Basic Level) Practice (中文)1056 组合数的和
- PAT (Basic Level) Practice (中文)1057 数零壹
- PAT (Basic Level) Practice (中文)1063 计算谱半径
- PAT (Basic Level) Practice (中文)1064 朋友数
- PAT (Basic Level) Practice (中文)1076 Wifi密码
- PAT (Basic Level) Practice (中文)1077 互评成绩计算
- PAT (Basic Level) Practice (中文)1081 检查密码
- PAT (Basic Level) Practice (中文)1082 射击比赛
- PAT (Basic Level) Practice (中文)1083 是否存在相等的差
- 2017年天梯赛全国总决赛题集 L2-1 点赞狂魔
- 2017年天梯赛全国总决赛题集 L1-4 稳赢
- 2017年天梯赛全国总决赛题集 L1-8 矩阵A乘以B
- 你真的了解synchronized吗?
- 2017年天梯赛大区赛题集 7-1 出生年
- 2017年天梯赛大区赛题集 7-9 人以群分