GO语言基础教程10——函数(上)

简介: 函数是组织好的、可重复使用的、用于执行指定任务的代码块。

GO语言基础教程10——函数(上)


GO语言基础教程10——函数(上)


函数是组织好的、可重复使用的、用于执行指定任务的代码块。


函数的定义


Go语言中定义函数使用func关键字,具体格式如下:

func 函数名(参数)(返回值){
    函数体
}
  • 函数名:函数名和标识符具有一样的限制。
  • 参数:参数由参数变量和参数变量的类型组成,多个参数之间使用,分隔。
  • 返回值:返回值由返回值变量和其变量类型组成,也可以只写返回值的类型,多个返回值必须用()包裹,并用,分隔。
  • 函数体:实现指定功能的代码块。


例如:

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

函数的参数和返回值都是可选的,例如我们可以实现一个既不需要参数也没有返回值的函数:

func sayHello() {
  fmt.Println("Hello World")
}


函数的调用


定义了函数之后,我们可以通过函数名()的方式调用函数。 例如我们调用上面定义的两个函数,代码如下:

func main() {
  sayHello()
  temp := twoSum(10, 20)
  fmt.Println(temp)
}


参数


类型简写


函数的参数中如果相邻变量的类型相同,则可以省略类型。


例如:

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

可变参数


可变参数是指函数的参数数量不固定。Go语言中的可变参数通过在参数名后加...来标识。


注意: 可变参数只能作为函数的最后一个参数。


例如:

func twoSum2(x int,y ...int) {
  fmt.Println(x)
        fmt.println(y)
}

调用上面的函数:

func main() {
    twoSum(10,20,30,40,50)
    //输出:
    //10
    //[20,30,40,50]
}

本质上,函数的可变参数是通过切片来实现的。


返回值


Go语言中通过return关键字向外输出返回值。Go语言中函数支持多返回值,函数如果有多个返回值时必须用()将所有返回值包裹起来。


例如:

func text(x, y int) (int, int) {
  sum := x + y
  sub := x - y
  return sum, sub
}

函数定义时可以给返回值命名,并在函数体中直接使用这些变量,最后通过return关键字返回。


例如:

func text(x, y int) (sum, sub int) {
  sum = x + y
  sub = x - y
  return
}

当我们的一个函数返回值类型为slice时,nil可以看做是一个有效的slice,没必要显示返回一个长度为0的切片,返回一个nil值即可。

相关文章
|
4天前
|
数据采集 存储 Go
使用Go语言和chromedp库下载Instagram图片:简易指南
Go语言爬虫示例使用chromedp库下载Instagram图片,关键步骤包括设置代理IP、创建带代理的浏览器上下文及执行任务,如导航至用户页面、截图并存储图片。代码中新增`analyzeAndStoreImage`函数对图片进行分析和分类后存储。注意Instagram的反爬策略可能需要代码适时调整。
使用Go语言和chromedp库下载Instagram图片:简易指南
|
1天前
|
Go 开发者
Golang深入浅出之-Go语言流程控制:if、switch、for循环详解
【4月更文挑战第21天】本文介绍了Go语言中的流程控制语句,包括`if`、`switch`和`for`循环。`if`语句支持简洁的语法和初始化语句,但需注意比较运算符的使用。`switch`语句提供多分支匹配,可省略`break`,同时支持不带表达式的形式。`for`循环有多种形式,如基本循环和`for-range`遍历,遍历时修改原集合可能导致未定义行为。理解并避免易错点能提高代码质量和稳定性。通过实践代码示例,可以更好地掌握Go语言的流程控制。
8 3
Golang深入浅出之-Go语言流程控制:if、switch、for循环详解
|
1天前
|
Go
Golang深入浅出之-Go语言函数基础:定义、调用与多返回值
【4月更文挑战第21天】Go语言函数是代码组织的基本单元,用于封装可重用逻辑。本文介绍了函数定义(包括基本形式、命名、参数列表和多返回值)、调用以及匿名函数与闭包。在函数定义时,注意参数命名和注释,避免参数顺序混淆。在调用时,要检查并处理多返回值中的错误。理解闭包原理,小心处理外部变量引用,以提升代码质量和可维护性。通过实践和示例,能更好地掌握Go语言函数。
11 1
Golang深入浅出之-Go语言函数基础:定义、调用与多返回值
|
2天前
|
程序员 Go API
【Go语言快速上手(二)】 分支与循环&函数讲解
【Go语言快速上手(二)】 分支与循环&函数讲解
|
2天前
|
Go
Golang深入浅出之-Go语言基础语法:变量声明与赋值
【4月更文挑战第20天】本文介绍了Go语言中变量声明与赋值的基础知识,包括使用`var`关键字和简短声明`:=`的方式,以及多变量声明与赋值。强调了变量作用域、遮蔽、初始化与零值的重要性,并提醒读者注意类型推断时的一致性。了解这些概念有助于避免常见错误,提高编程技能和面试表现。
17 0
|
2天前
|
编译器 Go 开发者
Go语言入门|包、关键字和标识符
Go语言入门|包、关键字和标识符
22 0
|
存储 IDE Java
go语言简单入门
go语言简单入门
137 0
|
缓存 搜索推荐 编译器
Go 语言入门很简单 -- 17. Go Package #私藏项目实操分享#
Go 语言入门很简单 -- 17. Go Package #私藏项目实操分享#
140 0
Go 语言入门很简单 -- 17. Go Package #私藏项目实操分享#
|
编译器 Shell 测试技术
Go 语言入门很简单--技巧和窍门(Tips and Tricks)
Go 语言入门很简单--技巧和窍门(Tips and Tricks)
153 0
Go 语言入门很简单--技巧和窍门(Tips and Tricks)
|
安全 测试技术 Go
Go 语言入门很简单 -- 16. Go 并发互斥锁 #私藏项目实操分享#
Go 语言入门很简单 -- 16. Go 并发互斥锁 #私藏项目实操分享#
131 0
Go 语言入门很简单 -- 16. Go 并发互斥锁 #私藏项目实操分享#