iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > GO >golang的匿名函数和普通函数的区别是什么
  • 442
分享到

golang的匿名函数和普通函数的区别是什么

2023-07-05 17:07:26 442人浏览 薄情痞子
摘要

今天小编给大家分享一下golang的匿名函数和普通函数的区别是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Golang

今天小编给大家分享一下golang的匿名函数和普通函数的区别是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

Golang的匿名函数和普通函数的区别

匿名函数是不具名的函数,可以在不定义函数名的情况下直接使用,通常用于函数内部的局部作用域中。而普通函数则是通过定义函数名,在任何地方都可以直接调用的函数。
在 Go 中,匿名函数与普通函数有以下区别:

  • 匿名函数可以在函数内部定义,普通函数只能在包级别定义;

  • 匿名函数可以在定义后立即调用,也可以赋值给一个变量后再调用,而普通函数只能通过函数名调用;

  • 匿名函数可以访问并修改外部变量,即闭包特性,而普通函数只能访问参数和全局变量;

  • 匿名函数可以作为函数参数传递,也可以作为函数返回值,而普通函数只能作为函数参数传递。

例如,以下代码使用了匿名函数:

package mainimport "fmt"func main() {    func() {        fmt.Println("Hello, World!")    }()}

在这个例子中,我们定义了一个匿名函数,并在函数定义后立即调用。该匿名函数没有名称,没有参数,没有返回值,仅仅打印 “Hello, World!”。由于该函数是在 main 函数内部定义的,因此只能在 main 函数内部调用,外部无法访问。

匿名函数可以访问并修改外部变量,即闭包特性

s := []string{"我喜欢", "邓文怡"}func(){s[1] = "编程"s = append(s, "和", "写作")}()for _, v := range s {print(v, " ")}// 我喜欢 编程 和 写作

在这个例子中,我们定义了一个字符串切片 s,包含两个元素 “我喜欢” 和 “邓文怡”。然后定义了一个匿名函数,并在函数定义后立即调用。在该匿名函数中,我们将 s 切片的第二个元素修改为 “编程”,并将 “和” 和 “写作” 两个元素添加到 s 切片的末尾。最后,通过使用 range 循环遍历 s 切片的每个元素,并将其打印出来。因此,打印输出的结果为 “我喜欢 编程 和 写作”。值得注意的是,由于该匿名函数是在 main 函数内部定义的,因此只能在 main 函数内部调用,外部无法访问。

由于该匿名函数是在 main 函数内部定义的,因此可以访问和修改 s 切片。在该匿名函数定义时,它引用了变量 s,因此它形成了一个闭包,即该匿名函数“捕获”了在其定义范围内声明的变量 s。所以,在匿名函数中修改 s 切片的值也影响到了 main 函数中 s 切片的值。 这就是匿名函数的闭包特性:函数可以访问并修改其定义范围内的变量。

补充:Golang的匿名函数

golang中的匿名函数 golang中的匿名函数1.匿名函数介绍2.匿名函数使用方式2.1定义时直接调用2.2将匿名函数赋值给一个变量2.3定义全局匿名函数

golang中的匿名函数

1.匿名函数介绍

golang支持匿名函数,如果某些函数仅想在特定位置使用一次,那么可以考虑使用匿名函数。
匿名函数也可以实现多次调用。

2.匿名函数使用方式

2.1定义时直接调用

示例代码:

package mainimport ("fmt")func main() {fmt.Println("Hello World!");//匿名函数使用方式1:定义时直接调用。//(num1 int,num2 int),形参前不写函数名,并在函数后直接调用。res := func (num1 int,num2 int) int {return num1 + num2}(2,3)fmt.Printf("res的值为:%v",res)}

结果:

golang的匿名函数和普通函数的区别是什么

2.2将匿名函数赋值给一个变量

示例代码:

package mainimport ("fmt")func main() {fmt.Println("Hello World!");//匿名函数使用方式2:将匿名函数赋值给变量,使用变量调用。add := func (num1 int,num2 int) int {return num1 + num2}//通过函数变量 调用函数。res := add(2,3)fmt.Printf("add的类型为:%T,res的值为:%v",add,res)}

结果:

golang的匿名函数和普通函数的区别是什么

add的类型为 函数 func(int,int) int 类型。

2.3定义全局匿名函数
package mainimport ("fmt")//匿名函数使用方式3:将函数赋值给全局变量。var Add = func (num1 int,num2 int) int{return num1 + num2}func main() {fmt.Println("Hello World!");res := Add(2,3)fmt.Printf("Add全局变量的类型:%T,res的类型:%T,res的值为:%v",Add,res,res)}

结果:

golang的匿名函数和普通函数的区别是什么

以上就是“golang的匿名函数和普通函数的区别是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网GO频道。

您可能感兴趣的文档:

--结束END--

本文标题: golang的匿名函数和普通函数的区别是什么

本文链接: https://www.lsjlt.com/news/354004.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • golang的匿名函数和普通函数的区别是什么
    今天小编给大家分享一下golang的匿名函数和普通函数的区别是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。golang...
    99+
    2023-07-05
  • golang函数闭包和匿名函数之间的区别
    go 语言中的闭包和匿名函数的主要区别在于:闭包可以访问其创建范围之外的变量;匿名函数不能访问其创建范围之外的变量。 Go 语言中函数闭包和匿名函数之间的区别 闭包 闭包是一个函数,它...
    99+
    2024-04-24
    golang 闭包 匿名函数
  • golang匿名函数是什么
    Golang中的匿名函数是一种没有明确名称的函数。它可以在需要函数的地方直接定义和使用,而不需要事先声明一个函数。 匿名函数可以作为...
    99+
    2023-10-22
    golang
  • c++ 内联函数和普通函数的区别
    前言 内联函数是c++为了提高程序的运行速度做的改进,它与普通函数区别在于: 编译器如何将它们组合到程序中。所以我们需要深入到程序内部。 我们的最终的可执行程序由 一组机器指令组成...
    99+
    2024-04-02
  • golang函数的匿名函数
    go 语言匿名函数可无需声明函数名称,用于创建一次性使用的函数或更大函数的一部分。其语法为 func() { // 函数体 },可接受参数和返回结果。实战案例包括排序切片(通过 sort...
    99+
    2024-04-20
    golang 匿名函数
  • Python中的闭包和匿名函数有什么区别
    闭包和匿名函数都是函数的概念,但是它们有一些区别: 闭包是指在一个函数内部定义另一个函数,并且内部函数可以访问外部函数的变量。闭...
    99+
    2024-03-12
    Python
  • es6箭头函数和普通函数的区别有哪些
    这篇文章主要介绍“es6箭头函数和普通函数的区别有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“es6箭头函数和普通函数的区别有哪些”文章能帮助大家解决问题。ES6 箭头函数的主要区别如下:&n...
    99+
    2023-06-17
  • es6中箭头函数和普通函数的区别有哪些
    这篇文章主要介绍es6中箭头函数和普通函数的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 区别:1、箭头函数的定义要比普通函数定义简洁、清晰得...
    99+
    2024-04-02
  • 【Kotlin】DSL 领域特定语言 ( apply 标准库函数分析 | 普通匿名函数 | 扩展匿名函数 | 泛型扩展匿名函数 )
    文章目录 一、DSL 领域特定语言二、apply 标准库函数分析1、apply 函数展示2、apply 函数原型分析函数原型参数和返回值分析 3、匿名函数类型分析4、扩展函数回顾5、泛型扩展函数函数类型6、泛型扩展匿名函数7、...
    99+
    2023-08-30
    kotlin 匿名函数 扩展匿名函数 泛型扩展匿名函数 标准库函数
  • golang匿名函数的用法
    匿名函数在 go 中没有名称,可作为参数传递给其他函数。用法:语法:func([参数列表]) ([返回值列表]) { // 函数体 }可省略参数和返回值。可直接传递给其他函数。实战案例:...
    99+
    2024-04-29
    golang 匿名函数
  • JavaScript 箭头函数的特点、与普通函数的区别
    目录1. 箭头函数的使用1. 普通函数到箭头函数2. 省略大括号和 return3. 省略小括号2. 箭头函数与普通函数的区别1. 箭头函数的 this 是父级作用域的 this2....
    99+
    2024-04-02
  • JavaScript中箭头函数与普通函数的区别详解
    本文为大家讲解了JavaScript中箭头函数与普通函数的区别,供大家参考,具体内容如下 箭头函数: let fun = () => { console.log('...
    99+
    2024-04-02
  • lambda 表达式与匿名函数有什么区别?
    lambda 表达式和匿名函数都是 python 中创建匿名函数的方法,但存在差异。赋值方式:lambda 表达式返回一个函数,而匿名函数必须赋值给变量才能使用。代码复杂度:lambda...
    99+
    2024-04-17
    匿名函数 python
  • python中什么是匿名函数
    python中什么是匿名函数?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python主要应用领域有哪些1、云计算,典型应用OpenStack。2、WEB前端开...
    99+
    2023-06-14
  • Python匿名函数的用法是什么
    Python中的匿名函数也称为lambda函数,它是一种没有名称的函数。匿名函数通常用于需要一个简单的函数,但不希望为其命名的情况下...
    99+
    2023-10-24
    Python
  • c++虚函数和纯函数的区别是什么
    C++中的虚函数和纯虚函数都是用来实现多态性的机制,但它们有一些不同之处。 虚函数是在基类中声明的,可以在派生类中进行重写,它允许在...
    99+
    2023-10-26
    c++
  • JavaScript箭头函数与普通函数的区别示例详解
    目录箭头函数与普通函数的区别箭头函数的理解箭头函数里的this指向总结箭头函数与普通函数的区别 要讨论箭头函数和普通函数的区别,首先来看看两者的基本格式 普通函数和箭头共同点就是圆...
    99+
    2022-11-13
    JavaScript箭头函数普通函数 JavaScript 箭头普通函数区别
  • PHP中匿名函数指的是什么
    这篇文章主要介绍PHP中匿名函数指的是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是匿名函数?如果声明一个函数,而该函数没有函数名,那么这个函数就是匿名函数用法:用变量接收匿名函数变量名= fun...
    99+
    2023-06-15
  • Golang函数的匿名函数应用场景分析
    作为一门现代化的编程语言,Golang(又称Go语言)具有众多强大的特性。其中,匿名函数是Golang的一个非常重要的概念,被广泛应用于各种场景中。在本文中,我们将深入分析Golang函数中匿名函数的应用场景。事件处理器在事件处理器中,匿名...
    99+
    2023-05-16
    Golang 匿名函数 应用场景分析
  • PHP中匿名函数的作用是什么
    这期内容当中小编将会给大家带来有关PHP中匿名函数的作用是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。◆字符串的函数名◆使用create_function的返回51CTO推荐专题:PHP开发基础入门...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作