首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在这个例子中,为什么我不能用它的返回值替换函数名呢?

在这个例子中,不能用函数的返回值替换函数名的原因是函数名代表的是函数的内存地址,而函数的返回值是函数执行后的结果。函数名是一个指针,指向函数在内存中的位置,通过函数名可以调用函数。而函数的返回值是函数执行后的结果,是一个具体的值。因此,函数名和函数的返回值是不同的概念,不能互相替换。

举个例子来说明,假设有一个函数add(a, b),用于计算两个数的和。函数名add代表了函数在内存中的位置,可以通过add(a, b)来调用函数。而函数的返回值是具体的计算结果,比如add(2, 3)的返回值是5。如果将函数名替换为函数的返回值,比如将add替换为add(2, 3)的返回值5,那么就无法再通过add(a, b)来调用函数了,因为add不再表示函数的内存地址。

因此,在这个例子中,不能用函数的返回值替换函数名。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

编程(1)-泛编程是如何实现

编程就是把函数组合起来形成一完整程序。可想而知,函数组合过程可以是曲折,形成程序可以是复杂。那么泛编程又是如何保证一复杂函数组合程序是正确无误?...无“附带影响”、可“等量替换”作为泛程序正确性保障,或许在这里应该用一些实例来说明: 先来个超简单例子:这个表达式 1+1=2够简单了吧。...这说明StringBuilder.append不是一纯函数,我们决不能用它来进行函数组合(Function Composition),因为组成程序行为是不可预料。  ...从以上例子我们还可以得出结论:泛程序能用正常逻辑来理解,它作用是可预测,不容易出现粗心错误,可以放心使用。...在这结尾顺便示范一下泛编程风格: 下面这个例子是我们熟悉OOP风格: 1 def createErrorMessage(errorCode: Int) : String = { 2

1.6K80

那个男人再发力,原来以前学 Lambda 都是假

比如我在 a 内部有一处对别的方法调用,这个方法可能是 b,可能是 c,不一定是谁,只知道,在这里有一调用,它参数类型是 int ,返回值类型也是 int ,而具体在 a 执行时候内部调用哪个方法...不过对于一声明好函数,不管是你要把它作为参数传递给函数,还是要把它赋值给变量,都得在函数名左边加上双冒号才行: a(::b) val d = ::b 这……是为什么?...那既然都是一东西,为什么不直接写函数名,而要加两冒号? 因为加了两冒号,这个函数才变成了一对象。 什么意思?...对象是不能加个括号来调用,对吧?但是函数类型对象可以。为什么?...但是我们刚才也说过了函数是不能作为参数传递,也不能赋值给变量,对吧? 那为什么匿名函数就这么特殊? 因为 Kotlin 匿名函数不——是————数。它是对象。

64420

【码上开学】Kotlin 高阶函数、匿名函数和 Lambda 表达式

比如我在 a 内部有一处对别的方法调用,这个方法可能是 b,可能是 c,不一定是谁,只知道,在这里有一调用,它参数类型是 int ,返回值类型也是 int ,而具体在 a 执行时候内部调用哪个方法...不过对于一声明好函数,不管是你要把它作为参数传递给函数,还是要把它赋值给变量,都得在函数名左边加上双冒号才行: a(::b) val d = ::b 这……是为什么?...那既然都是一东西,为什么不直接写函数名,而要加两冒号? 因为加了两冒号,这个函数才变成了一对象。 什么意思?...对象是不能加个括号来调用,对吧?但是函数类型对象可以。为什么?...但是我们刚才也说过了函数是不能作为参数传递,也不能赋值给变量,对吧? 那为什么匿名函数就这么特殊? 因为 Kotlin 匿名函数不——是————数。它是对象。

2.1K20

计算机小白成长历程——函数(1)

相比于其它代码,它是相对独立,这里理解需要使用它时候,它才能起作用,不需要使用它时候,它也能存在于咱们代码里这里举个例子来证明一下: 大家可以看到,在这个代码,我们编写了一求两数之和函数...自定义函数与库函数相同地方就是它们都有函数名返回值类型和函数参数; 它们区别我们可以简单理解为就是一已经被定义好而且被收录在C语言库,一是由程序员根据实际情况进行设计且未被收入到C语言库...不对呀,按照起前面的方法,现在我们应该是成功交换了呀,为什么a,b值没有交换?...,但是a/b还是原先值,想必有些朋友跟我一样都很疑惑吧,别着急,下面就是对这个内容理解,你们可以跟随思路一起来思考一下: 我们在搞清楚为什么它们值并没有交换这个问题前,我们先要思考,这里能不能用...为什么在进行比大小时候不需要用指针,而这里需要用指针?这个问题我们先保留,下一篇会继续展开说明。

20030

Go语言中常见100问题-#43-44 Never using named result parameters

从不使用命名返回值参数 在Go语言中函数返回值使用命名参数一般不常用。本小节将讨论在什么情况下使用它使得API更加方便。在讨论之前,我们先来看一下命名返回参数工作原理。...在方法或函数返回值参数类型前可以添加参数名,并且它们可以当做普通变量。当命名一返回参数时,参数变量在函数/方法开始被初始化为零值。...那命名返回参数在什么情况下使用?...现在给出什么时候该采用有命名函数返回参数结论,它依赖上下文环境, 在大多数情况下,如果使用有命名函数返回参数不能让代码更具有可读性,我们不应该使用它。...继续沿用前面小节给定一地址返回它经度和纬度值例子说明,当返回两float32时,我们将决定使用命名函数参数来明确显示纬度和经度。该函数首先将验证给定地址,然后获取坐标。

24330

【C语言总集篇】函数篇——从不会到会过程

相比于其它代码,它是相对独立,这里理解需要使用它时候,它才能起作用,不需要使用它时候,它也能存在于咱们代码里这里举个例子来证明一下: 大家可以看到,在这个代码,我们编写了一求两数之和函数...在这例子,我们是通过MAX这个函数名来告诉别人我需要找出两整数最大值; 函数参数 函数参数是我们在函数体中进行操作对象。...在这例子,我们需要在函数体中进行寻找对象就是x、y这两参数 函数体 函数体是我们用来交代函数是如何实现。这个例子,我们是通过将x和y进行比较大小,从而得到它们最大值。...相信各位朋友通过这个例子能够更好理解自定义函数了,对于自定义函数返回类型、函数名和函数体我们都能理解其作用力,但是对于函数参数我们并没有在这例子中去介绍。...下面来给大家分享一下自己对于传值调用与传值调用理解,以及自定义函数执行流程; 个人理解 参数 在这例子参数就好比有四人,张三、李四、王五、赵六; 实参 实参就是张三和李四,实参对应数据就是他们今天穿衣服

24611

“零基础”也能学会python 函数

这是一有趣问题,自己搜索一下,看能不能找到答案。 也不清楚原因。不过,清楚地知道,变量可以用x,也可以用别的符号,甚至用alpha、beta 这样字母组合也可以。...当然,这种方式函数在编程实践没什么用途,仅仅在这里冒出来,后面绝对不用这个形式了。 输入 a=3,然后输入y,看看得到什么结果?...定义函数格式为: def 函数名(参数1,参数2,...,参数n): 函数体(语句块) 是不是样式很简单? 几点说明: 函数名命名规则要符合Python 命名要求。...请注意函数return,它作用就是要把函数结果返回,从而得到这个函数返回值。于是,通过result 就可以查看运算结果。...为什么?因为如果命 名乱了,计算机就有点不知所措了。看Python 对命名一般要求。 文件名:全小写,可使用下画线。 函数名:小写,可以用下画线风格单词以增加可读性。

34430

strstr函数php,strstr 函数用法

大家好,又见面了,是你们朋友全栈君。 strstr strstr(str1,str2) 函数用于判断字符串str2是否是str1子串。...下面为string.h文件函数详细用法: strcpy函数名:strcpy功 能: 拷贝一字符串到另一用 法: char *strcpy(char *destin, char *source)...php echo strstr(&qu … Oracle decode 函数用法 Oracle decode 函数用法 含义解释:decode(条件,值1,返回值1,值2,返回值2,…值n,返回值...: 回调函数就是一通过函数指针调用函数.如果你把函数指针(地址)作为参数传递给另一 … 随机推荐 调用约定__cdecl和__stdcall...18 23:22:27 [大 小] date命令不仅可以显示系统当前时间,还可以用它来修改系统时间,下面简单介 … 29、Oralce(五) 1)掌握PLSQL程序设计 2)掌握存储过程,函数和触发器

55920

C++基础语法重点总结

函数重载 说说什么是函数重载 函数重载指的是在同一作用域中,声明了具有相同函数名函数,它们参数列表不同,也就是说参数类型不同,参数个数不同,参数顺序不同,返回值同不同都可以。...函数重载和函数重定义需要是函数名相同,参数列表不同,函数重写需要函数名相同、参数列表相同和返回值相同(例外情况是协变和析构函数重写。协变是返回值可以不同,但是返回值必须是父子关系类指针或引用。...在类,成员变量被修饰后,是属于所有类,所有类对象都可以调用它,而且是不需要this指针去引用。...说一说宏优缺点,有什么解决办法 宏优点是增强代码复用性,比如用宏来定义一常量,那么在后续代码或许需要多次用到这个常量。还有就是可以提高性能。...写一替换例子 #define add(x,y) x+y int main() { int a = 1, b = 2; cout << add(a, b) << endl; return

19030

C++函数定义 | 输出有参无参

C++无参函数定义 上一节小林已经讲过,从函数形式来看,函数分为无参函数和有参函数,那么他们有什么不同?...定义无参函数一般形式为 类型标识符 函数名([void])//注意void可以省略不写 {   声明部分   语句 } C++有参函数定义 有参函数,顾名思义,有参数函数,和无参函数相比,有参函数多了参数...,定义如下所示 类型标识符 函数名(形式参数表列) {   声明部分   语句 } 学习了无参函数和有参函数不同,接下来看一例子巩固下知识点 经典案例:C++实现无参数和有参数函数,并输出相应文字描述...<<endl;//调用这个方法会输出是无参函数  } int PrintFace(int temp)//自定义有参数函数  {   cout<<temp<<endl; //输出temp值    cout...PrintFace(3);//调用有参函数    return 0;//函数返回值为0  } 执行本程序之后,会输出 是无参函数 ---------------- 3 是有参函数 --------

1.4K2927

如何高效编写可维护代码?

在代码中找到一放错地方并且没有用注释是不是很有趣?怎么样才能做到写很少注释但仍能让代码易于理解? 一主要方式就是让代码自我文档化。...当代码自我文档化时候,就不需要注释去它作用或者目的,并且也能使代码变得非常容易维护。 在这篇文章将提供一些让你代码自我文档化方式。...接下来我们将通过实例,具体讲一讲如何在实际应用运用上述 5 方法。 命名 首先,看几个如何利用命名时代码变得清晰和自我文档化例子。 1) 重命名函数可以遵守以下规则。...例如,用 widthPx 来取代 width 以指定宽度单位是像素。 不要使用快捷键 —— a 和 b 都不能作为参数名。 函数封装 接下来,看几个如何将代码封装成函数例子。...特意举这个例子是想说明公共接口如何自文档化。 你能说出这个类是如何被调用吗?很显然,这并不明显。 这两函数都应该换个合理名字以表述它们目的。但即便做到这一点,我们还是不怎么清楚如何使用。

55630

利用世界杯,读懂 Python 装饰器

良好装饰器必须要遵守两原则: 1 不能修改被装饰函数代码 2 不能修改被装饰函数调用方式 这里并不难以理解,在现在生产环境,很多代码是不能轻易改写,因为这样有可能发送意想不到影响。...这其实和整数、数字是一样,下面的代码你肯定熟悉: a = 1 b = a print(a, b) 2 高阶函数 高阶函数满足如下条件任意一:a.可以接收函数名作为实参;b.返回值可以包含函数名...temp = status(name) temp() 输出结果: 慌一逼! 是梅西! 在这例子我们定义了一 status 函数,status 接收一数名然后直接返回该函数名。...在开始例子,我们还实现了一 rooftop_status 函数,来判断下当前天台状是否人满。但是我们现在是直接返回了函数名,这样函数调用后我们就没办法做任何事情。...这也是为什么装饰器都是嵌套函数原因。 另外,开篇例子并没有返回值,也没有参数,要对既有参数又有返回值函数进行装饰的话,还需要进一步完善。

23740

一文读懂Python装饰器由来

那是因为行为良好装饰器必须要遵守两原则: 1、不能修改被装饰函数代码; 2、不能修改被装饰函数调用方式; 这并不难以理解,因为在生产环境如果我们要给某个函数添加功能,最好不要修改该函数源码,...可以接收函数名作为实参; b. b.返回值可以包含函数名; 其实python标准库map和filter等函数就是高阶函数。...还是第一例子test1函数,我们定义了一函数out,out接收一数名然后直接返回该函数名。这样,我们实现了不修改原函数test1,并且添加了一新功能需求,但是缺陷就是调用方式改变了。...# test1 = out(test1) test1() 至此,我们搞清楚了装饰器工作原理,但是对比开篇例子,还是有些不一样。这又是为什么?...这也是为什么装饰器都是嵌套函数原因。 另外,开篇例子并没有返回值,也没有参数,要对既有参数又有返回值函数进行装饰的话,还需要进一步完善。

43830

利用世界杯,读懂 Python 装饰器

良好装饰器必须要遵守两原则: 1 不能修改被装饰函数代码 2 不能修改被装饰函数调用方式 这里并不难以理解,在现在生产环境,很多代码是不能轻易改写,因为这样有可能发送意想不到影响。...1 函数名可以赋值给变量 2 高阶函数 1 函数名可以赋值给变量 我们来看下这个例子: def func(name): print('是{}!慌一逼!'....这其实和整数、数字是一样,下面的代码你肯定熟悉: a = 1 b = a print(a, b) 复制代码 2 高阶函数 高阶函数满足如下条件任意一:a.可以接收函数名作为实参;b.返回值可以包含函数名...复制代码 在这例子我们定义了一 status 函数,status 接收一数名然后直接返回该函数名。这样我们实现了不修改原函数 name,并且添加了一新功能需求。...在开始例子,我们还实现了一 rooftop_status 函数,来判断下当前天台状是否人满。但是我们现在是直接返回了函数名,这样函数调用后我们就没办法做任何事情。

36530

一文读懂Python装饰器由来(一)

那是因为行为良好装饰器必须要遵守两原则: 1、不能修改被装饰函数代码; 2、不能修改被装饰函数调用方式; 这并不难以理解,因为在生产环境如果我们要给某个函数添加功能,最好不要修改该函数源码,...可以接收函数名作为实参; b. b.返回值可以包含函数名; 其实python标准库map和filter等函数就是高阶函数。...还是第一例子test1函数,我们定义了一函数out,out接收一数名然后直接返回该函数名。这样,我们实现了不修改原函数test1,并且添加了一新功能需求,但是缺陷就是调用方式改变了。...# test1 = out(test1) test1() 至此,我们搞清楚了装饰器工作原理,但是对比开篇例子,还是有些不一样。这又是为什么?...这也是为什么装饰器都是嵌套函数原因。 另外,开篇例子并没有返回值,也没有参数,要对既有参数又有返回值函数进行装饰的话,还需要进一步完善。

43920

第一C语言程序(从Hello World开始)

花括号上面的函数名、函数参数及返回值被称作 函数头 。 3. 写一自己函数 需求:根据上面的函数写法公式,写一整数加法函数。这个函数需要做到:输入两整数,返回它们相加结果。...上边写示例就是add函数 接受2,3为输入,返回5,被赋值号 = 赋值给 result 流程。 那能不能这样写?去掉 int result; 这一条。...关键词 是在语言标准规定,并且在代码中有特殊意义和用途。因此,关键词不能作为一标识符来使用。 C语言中关键词如下表所示。...printf ,但为什么在 add函数 后却能传2给它?..., 替换1, 替换2, 替换3); printf 第一参数必须是 字符串 ,这里我们传入了一字符串字面常量(被双引号包裹)。

52320

教你快速上手C语言中数据类型和变量

而在C语言中想表示 一物品、或者一名字、价格等······ 是表示数据?...存在这么多类型,其实是为了更加丰富表达生活各种值。 每种类型大小是多少? 我们用sizof操作符来看一下每种类型是多大。 sizof是C语言中用来计算 大小 操作符。...不能以数字开头。 长度不能超过63字符。 变量名中区分大小写。 变量名不能使用关键字。...这里我们使用了函数调用它 int a = 2023; //函数定义void是空意思,由于我们只是打印不返回值所以这里 //函数返回值为空 test()是函数名 void test() { printf...("2---> %d\n", a); } int main() { a = 2022;//为什么说他不安全

10010

类和对象竟是这样(中集)

特征: (1)函数名与类名相同 (2)无返回值 (3)类对象实例化时编译器自动调用对应构造函数 (4)构造函数可以重载 (5)如果用户没有显示声明构造函数,则C嘎嘎编译器会自动生成一无参默认构造函数...,代码可以通过编译,因为编译器生成了一无参默认构造 数 // 将Date类构造函数放开,代码编译失败,因为一旦显式定义任何构造函数,编译器将不再 生成      // 无参构造函数,放开后报错...2.特性 析构函数特征如下: (1)析构函数名是类名前加~ (2)无返回值无参数 (3)一类只能有一析构函数,不能重载,当用户没有显示定义时,编译器会自动生成一默认析构函数 (4)当对象生命周期结束时...四.拷贝构造函数 1.概念 相信大家生活中都看见过双胞胎,那么在我们编程是否会有两变量也是差不多? 诶!还真有,不过得用到拷贝构造函数。...:   这几个运算符不能重载 2.赋值运算符重载 重载格式: (1)参数:const+类类型对象引用 (2)函数名:operator= (3)返回值:类类型引用 class Date { public

5610

彻底搞定C语言指针(精华版)

下面我们就开始真正进入指针 学习了。 二、指针是什么东西 想说弄懂你不容易啊!我们许多初学指针的人都要这样感慨。常常在思索它,为什么?其实生活处处都有指针。我们也处处在使用它。...这是一生活例子:比如说你要 借给你一本书,到了你宿舍,但是你人不在宿舍,于是把书放在你2层3号书架上,并写了一 张纸条放在你桌上。纸条上写着:你要书在第2层3号书架上。...奇怪,明明把a,b分别代入了x,y,并在函数里完成了两变量值交换,为什么a,b变量 值还是没有交换(仍然是a==4,b==6,而不是a==6,b==4)?...如果找到,函数通过第三参数(pa)返回值为array字符 串第一找到字符地址。如果没找到,则为pa为0....才不得不在思考:函数名到底又是什么东西? (不要以为这是没有什么意义事 噢!呵呵,继续往下看你就知道了。)

94530
领券