Go函数

GO函数Go语言函数定义函数是基本的代码块,用于执行一个任务。Go语言函数特点:1、关键字func用来声明一个函数funcName;2、函数可以有一个或者多个参数,每个参数后面带有类型,通过逗号(,)分隔;3、函数可以返回多个值;4、返回值可以使用声明变量,如果不想声明也可以直接使用返回值的类型;5、如果只有一个返回值且不声明返回值变量,那么你可以省略 包括返回值 的括号;6、如果没有返回值,可以直接省略最后的返回信息;7、如果有返回值, 必须在函数的外层添加return语句,否则会引发
摘要由CSDN通过智能技术生成

GO函数

Go语言函数定义

函数是基本的代码块,用于执行一个任务。
Go语言函数特点:
1、关键字func用来声明一个函数funcName;
2、函数可以有一个或者多个参数,每个参数后面带有类型,通过逗号(,)分隔;
3、函数可以返回多个值;
4、返回值可以使用声明变量,如果不想声明也可以直接使用返回值的类型;
5、如果只有一个返回值且不声明返回值变量,那么你可以省略 包括返回值 的括号;
6、如果没有返回值,可以直接省略最后的返回信息;
7、如果有返回值, 必须在函数的外层添加return语句,否则会引发编译错误;
8、函数也是一种类型,一个函数可以赋值给变量,可作为参数传递;
9、函数不支持嵌套,一个包不能有两个名字一样的函数。不支持重载,不支持 默认参数

函数定义
第一种,定义一个无参数,无返回值的函数
func funcName() {

}
第二种,定义一个参数,无返回值的函数
func Print(str string) {
​ println(str)
}
第三种,定义多个参数的函数,一个返回值的函数
func sum(x, y int) int {
​ return x + y
}
第四种,定义一个多返回值的函数
func oldboy(str string) (ret string, err error) {
​ if str == “Go” {
​ return “技术引领潮流”, nil
​ }
​ return “”, errors.New(“error”)
}
第五种,返回值只有类型,无变量声明函数
func oldboy(str string) (string, error) {
​ if str == “Go” {
​ return “技术引领潮流”, nil
​ }
​ return “”, errors.New(“error”)
}

函数类型

第一种,定义一个无参数,无返回值的函数类型
type funcType func()

第二种,定义一个参数,无返回值的函数类型
type funcType func(string)

第三种,定义多个参数的函数,一个返回值的函数类型
type funcType func(x, y int) int

第四种,定义一个多返回值的函数类型
type funcType func(string) (string, error)

Go语言函数参数

函数参数
实际参数简称“实参”。在调用有参函数时,函数名后面括号中的参数称为“实际参数”,实参可以是常量、变量或表达式。
自定义函数中的“形参”全称为"形式参数" 由于它不是实际存在变量,所以又称虚拟变量。实参和形参可以重名。形参的作用域是整个函数体就像定义在函数体内的局部变量。
参数传递
第一种,值传递:指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。

package main

import (
    "fmt"
)

func main() {
    var x int = 1
    var y int = 2
    // 值传递
    z := sum(x, y)
    fmt.Println(z)
}

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

第二种,引用传递:是指在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。

package main

import (
    "fmt"
)

func swap(x, y *string) {
    var temp string
temp = *x
*x = *y
*y = temp
}

func main() {
    var course1, course2 string = "Python", "Golang"
swap(&course1, &course2)

fmt.Println(course1, course2)
}

第三种,固定类型可变参数:就是函数的参数不是固定的,后面的类型是固定的。

package main

import (
    "fmt"
)

func variable(name string, c
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值