欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

javascript - 请问怎么理解计算机中的函数?

程序员文章站 2024-01-08 17:56:22
...
之前的个人理解觉得不妥已删

类似于这样的说法就不要回答了:函数是一个工厂,你放原料进去,它生成产品出来。

回复内容:

之前的个人理解觉得不妥已删

类似于这样的说法就不要回答了:函数是一个工厂,你放原料进去,它生成产品出来。

你的理解有点外行看热闹的意思,呵呵。
代码本身就是抽象的,所以“计算机中的函数是一种对代码进行抽象的方式”不能说不对,但是也和没说一样。至于“我们使用抽象出来的函数,而不用关心函数里面的代码是如何组织的”,只能说是一种诉求,实际上很多错误正是在函数内部产生的,因此我们不可能完全不关心函数的内部实现。

从语义上来说,函数是行为的具体实现,行为通常是动词或动词短语,如get()[获取], getDetails()[获取详情], getDetailsById()[根据id获取详情]。
从开发的角度来说,函数是一种代码结构,如果一段代码会被使用2次及以上,那么将这段代码放在函数中可以使其更易于维护。
从可读性上说,函数相当于名词解释,用简短的名字表达一个相对复杂的事情,这样阅读起来比较愉快,也不容易歪楼。例如 读取用户详细数据并显示 明显好于 连接数据库,在用户表执行查询获得指定id的用户返回的句柄,获取句柄游标指向的行并转换为数组,然后显示该数组。后者不但很长,明显不是人话,增加沟通成本。

总结:无论是对象还是函数,都是一种代码的组织形式,其目的是提高代码的可读性、使其易于维护。不同的人由于思维习惯的不同,其代码的组织形式可能不同,但是通常都是自洽的。(白话的说法,有人喜欢3句话描绘一件事情,具体实现时每句话又会拆分为3句话的描述,有人喜欢5句话描绘一件事情,具体实现时每句话又会拆分为5句话的描述,那么这两个人定义的对象/函数必然不同,但最后会得到相同的结果。)

常见的书本上的函数

f(x)=x+1;

更改到代码

function f(x)
{
    return x+1;
}

如果还不理解,那初中就白上了

1.函数是一种映射关系,我们的输入对应一种输出(一般不强制限定为一种输出),输入可以为0。
2.函数是对可复用代码的封装。我么写的一段代码块,根据它的可复用性,去选择封装代码还是不封装代码,封装好了,就可以称之为函数。
3.函数是对编程的IPO模式的细节的隐藏。我们进行编程,肯定会遵循IPO模式,即输入-处理-输出。我们隐藏其中的处理过程时,只需要测试好输入和输出,就可以说封装了一个函数。
4.函数内部是组织好了的代码块。
总而言之,函数是一种封装了可复用代码的具有I/O映射关系的代码组织形式

谢邀。参考 wikipedia

In different programming languages, a subroutine may be called a procedure, a function, a routine, a method, or a subprogram. In computer programming, a subroutine is a sequence of program instructions that perform a specific task, packaged as a unit.

函数是子例程的别名。子例程是一段执行特定任务的程序操作,以封装好的单元形式存在。

通俗地说,函数是一段小程序,指定一定的参数,执行一段对参数或外部环境有影响的操作,并可选地返回一个值。

好处?自然是 D.R.Y(DONT REPEAT YOURSELF)了。它简化了相似性代码的书写,同时也使程序模块化,易于维护。

(这里的函数和数学里的函数还是不一样的好伐→_→→_→→_→→_→)

函数就是实现某种功能的代码片段的封装,比如: sum()函数,就是求和,求和就是功能,用
关键词 function 包起来的代码块或者片段,代码函数具体的代码,你不用知道,因为作者已经
给你封装好了,你只需要调用即可,sum(1,2) 的结果是3,你立即知道了结果,但你不用知道函数内部
的如何计算的

function sum($a=0,$b=0)
{
    return $a+$b;
}

初中数学里的函数,你理解不?

一样一样的。

我觉得只要理解函数是什么作用即可,而不用过深的去了解函数这个概念本身!

因为程序语言中的“函数”本身也是一种封装,需要解释器统一对函数语法进行解析!

和你自己封装了一个函数给N个程序复用是一样的,没有太多的本质区别。

如果还不知道作用,你学习一门新的程序语言要打印hello world的时候,你发现程序语言没有给你封装一个叫做打印的函数,我不知道你当时是一种什么编程体验?

上一篇:

下一篇: