【Go - 常见的5类函数用法】

ops/2024/9/24 8:24:11/

函数

函数通过func关键字定义,后跟函数名、参数列表、返回类型。语法如下:

func functionName(parameters) returnType {// 函数体
}

示例

func add(x int, y int) int {return x + y
}func swap(x, y string) (string, string) {return y, x
}

变参函数

func sum(nums ...int) int {total := 0for _, num := range nums {total += num}return total
}

匿名函数

	s := (func () string {return "anonymous-function"})()fmt.Println(s)

**高阶函数,**函数作为参数和返回值

函数也可以作为参数传入 或者 作为返回值传出

// 函数作为参数
func compute(fn func(float64, float64) float64) float64 {return fn(3, 4)
}// 函数作为返回值
func getComputeFunc() func(int, int) int  {return func(x, y int) int {return x + y}
}

闭包


func intSeq() func() int {i := 0return func() int {i++return i}
}// 调用
func main() {incfunc := intSeq()fmt.Println(incfunc())fmt.Println(incfunc())
}

闭包本质是对作用域的延伸。
就比如intSeq中的i,如果没有其它地方引用,其会被垃圾回收,但是由于incfunc中有对其的引用,其不能被回收,其生命周期变长了,作用域延伸了。


http://www.ppmy.cn/ops/56944.html

相关文章

旷野之间2 - 如何训练医疗保健小型语言模型(AI-SLM)

​​​​ 在本文中,我们将研究如何针对疾病症状训练一个小型医疗保健语言模型。为此,我们将从HuggingFace获取数据集(用于训练我们的模型):https://huggingface.co/datasets/QuyenAnhDE/Diseases_Symptoms QuyenAnhDE/Diseases_Symptoms 数据集来自 Hugging Face。图片来源…

设计模式使用场景实现示例及优缺点(创建型模式——单例模式、建造者模式、原型模式)

创建型模式 单例模式(Singleton Pattern) 单例模式(Singleton Pattern)在Java中的使用场景与在其他编程语言中类似,其主要目的是确保一个类只有一个实例,并提供一个全局的访问点。以下是单例模式的一些常…

CentOS6用文件配置IP模板

CentOS6用文件配置IP模板 到 CentOS6.9 , 默认还不能用 systemctl , 能用 service chkconfig sshd on 对应 systemctl enable sshd 启用,开机启动该服务 ### chkconfig sshd on 对应 systemctl enable sshd 启用,开机启动该服务 sudo chkconfig sshd onservice sshd start …

docker-compose mongodb 副本集

准备 cd /opt/mongos 把 3 个节点的数据目录创建好 mkdir -p ./mongos/{mongo1,mongo2,mongo3} mongodb 使用 keyFile 进行认证,副本集群中的每个节点的 mongodb 使用 keyFile 的内容作为认证其他成员的共享密码。mongodb 实例只有拥有正确的 keyFile 才可以加入副…

什么是RPC?有哪些RPC框架?

定义 RPC(Remote Procedure Call,远程过程调用)是一种允许运行在一台计算机上的程序调用另一台计算机上子程序的技术。这种技术屏蔽了底层的网络通信细节,使得程序间的远程通信如同本地调用一样简单。RPC机制使得开发者能够构建分…

iOS 开发者的 Flutter 入门课

作为一名 iOS 开发者,入门 Flutter 需要了解一些新的工具和概念,但也能利用你已有的知识和技能。以下是一个详细的入门指南,帮助你快速上手 Flutter: 1. 环境设置 首先,你需要设置开发环境。 安装 Flutter SDK 前往…

【鸿蒙学习笔记】交互事件

官方文档:交互事件 目录标题 分类交互事件-触屏交互事件-手势事件单一手势 分类 交互事件-触屏 在组件上按下(Down) , 滑动(Move) , 抬起(up)时触发的回调事件。包括点击事件、触摸事件和拖拽事件 交互事件-手势事件 在手机上点击打开应用 , 长按后拖动应用 , 这…

软件架构之信息系统基础知识(1)

软件架构之信息系统基础知识(1) 第 14 章:信息系统基础知识14.1 信息系统概述14.1.1 信息系统的组成14.1.2 信息系统的生命周期14.1.3 信息系统建设的原则14.1.4 信息系统开发方法 14.2 信息系统工程14.2.1 信息系统工程的概念14.2.3 信息系统…