什么是编程中的函数?

如果您正在学习如何编写自己的代码,则需要了解函数是什么。...

您经常发现自己复制和粘贴代码以便在程序的不同部分重用吗?

copy and paste

如果是这样,您可能需要考虑使用函数。函数是编程语言的一个非常强大的功能。它们可以使代码更高效、更易读、更优雅。

什么是函数(a function)?

函数是执行任务的代码块。它可以被多次调用和重用。您可以将信息传递给函数,它也可以将信息发送回去。许多编程语言都有内置函数,您可以在它们的库中访问这些函数,但您也可以创建自己的函数。

调用函数时,程序将暂停当前程序并执行该函数。函数将从上到下读取。函数完成后,程序将继续在暂停的位置运行。如果函数返回一个值,则该值将用于调用函数的位置。

如何编写函数?

编写函数的方法有很多种。确切的语法将取决于您正在使用的语言。我们将在Python、JavaScript和C++中演示示例,以演示一系列编程语法。

相关:为什么编程语言离不开函数

虚函数

我们将看到的第一种函数类型是一个空函数。这只是意味着函数不返回值。Void函数用于完成一组指令。在这些例子中,我们编写的函数称为HellofnContation。该函数的目的是输出“HelloWorld”。

提示:给出函数名称,解释它们的工作。随着程序变得更加复杂,管理函数和读取代码会更容易。

python

def helloFunction(): print("Hello World")helloFunction()

关键字def在Python中用于定义和创建函数。接下来是函数的名称。函数中的指令紧跟在冒号后面的下一行。在Python中,空格很重要,所以一定要缩进希望函数运行的所有代码。在上面的例子中,函数运行一行代码。

您敏锐的眼睛可能已经注意到print()也是一个函数,但它的调用与我们的函数不同。现在请坚持这个想法,我们稍后将探讨函数和参数。

javascript语言

function helloFunction(){ alert("Hello World!");}helloFunction();

在JavaScript中,关键字函数用于创建函数。接下来,我们有了函数的名称。任何落在花括号之间的代码都将在调用函数时运行。

空格在JavaScript中并不重要,但通常在函数中缩进代码。缩进使代码更易于阅读,这在程序变得更复杂时非常重要。

注意:与前面示例中的print()非常相似,alert()也是一个函数。

c级++

#include <iostream>using namespace std;void helloFunction(){ cout << "Hello World!";}int main(){ helloFunction(); return 0;}

函数在C++中被不同地创建。第一个词不是定义函数的关键字,而是描述函数将返回的数据类型。在这种情况下,我们的函数不返回任何数据,因此数据是无效的。接下来,我们有函数的名称。与JavaScript类似,花括号之间的所有代码都是在调用函数时运行的。同样与JavaScript类似,空格不影响函数,但是一种很好的做法。

你在C++代码中发现了另一个函数吗?是的,main()是一个函数。当你执行C++程序时,你会自动调用main函数。当main函数成功完成时,它在退出程序时返回0,表示运行程序时没有错误。

需要值的函数

如果您发现自己在一遍又一遍地编写相同的代码,那么Void函数是非常好的。但它们可能是有限的。它们是静态的,不会改变。他们总是完成同样的指令。我们可以增加它们的有用性的一种方法是向函数传递不同的值。

你会注意到我们所有函数的名字后面都有括号。在括号中,我们可以声明运行函数需要数据。然后我们可以在函数中使用传递给函数的数据。让我们再看一次前面的例子,但这一次传递一个短语,我们希望输出。

python

def helloFunction(newPhrase): print(newPhrase)helloFunction("Our new phrase")

现在,在括号之间,我们的函数声明它需要一个变量来运行。我们已经将变量命名为newPhrase,现在可以在函数中使用它。当我们调用函数时,我们需要通过将请求的信息放在括号之间来传递它。JavaScript中也做了同样的更改。

javascript语言

function helloFunction(newPhrase){ alert(newPhrase);}helloFunction("Our new phrase");

c级++

#include <iostream>using namespace std;void helloFunction(string newPhrase){ cout << newPhrase;}int main(){ helloFunction("Our new Phrase"); return 0;}

我们的C++函数需要更多的信息。我们知道你的函数需要字符串数据,但这对C++来说不够好。创建函数时,必须指定函数需要的数据类型。如果您没有发送正确类型的数据,则该函数将创建错误。

这可能看起来有点烦人,但严格的语言通常可以帮你省去头痛。如果您在JavaScript中编写一个需要整数的函数,但该数字是以字符串形式发送的,则可能会创建一个很难跟踪的bug。

相关:你应该知道的5种函数式编程语言

返回值的函数

我们将要讨论的最后功能是返回数据。当您想在使用数据之前更改数据时,这一点特别有价值。虽然可以在内联中编写,但是如果您将多次使用相同的计算,如将imperial转换为metric,将其作为函数编写可能更有意义。我们的例子将更简单。我们的函数需要两个整数,并返回总和。

python

def addingFunction(a, b): return a + bprint(addingFunction(2, 4))

在这个例子中,我们的函数需要两个变量而不是一个变量。我们用逗号分隔变量名来表示。关键字返回告诉函数返回以下数据,在这种情况下,返回2+4或6。我们调用print()函数中的函数。

一旦程序到达该行,它将暂停、运行我们的函数,然后继续,好像addingFunction(2,4)实际上只是返回的值6。

javascript语言

JavaScript代码与Python代码非常相似。主要区别在于函数是在警报中调用的。

function addingFunction(a, b){ return a + b;}alert(addingFunction(2, 4));

c级++

#include <iostream>using namespace std;int addingFunction(int a, int b){ return a + b;}int main(){ cout << addingFunction(2, 4) ; return 0;}

C++代码运行类似,但通常情况下,需要更多的信息。首先,我们必须说明函数将返回什么类型的数据。您将看到void已更改为int。这意味着函数将返回一个整数,而不是不返回任何数据。除此之外,代码与我们已经研究过的代码类似。

管理你的职能

函数的有趣之处在于,函数可以调用其他函数。他们甚至可以自称!但权力越大,责任越大。不要疯狂地用调用其他函数的函数来创建代码。

如前所述,每次调用函数时,程序都会在运行函数时暂停。这意味着程序被保存在活动内存中。如果您调用多个函数而没有完成它们,那么您将使用更多的活动内存。如果你不小心,你的程序就会失控。

  • 发表于 2021-03-29 16:35
  • 阅读 ( 258 )
  • 分类:编程

你可能感兴趣的文章

属性(attribute)和参数(parameter)的区别

...文讨论了属性与参数的区别。 目录 1. 概述和主要区别 2. 什么是属性 3. 什么是参数 4. 并列比较-表格形式的属性与参数 5. 摘要 什么是属性(attribute)? Java等编程语言支持面向对象编程。这种编程范式是基于对象的。物体有一种状...

  • 发布于 2020-10-19 02:04
  • 阅读 ( 607 )

函数式程序设计(functional programming)和命令式程序设计(imperative programming)的区别

...式编程与命令式编程的区别。 目录 1. 概述和主要区别 2. 什么是函数式编程 3. 什么是命令式编程 4. 函数式编程与命令式编程的相似性 5. 并排比较-函数式编程与表格形式的命令式编程 6.摘要 什么是函数式程序设计(functional program...

  • 发布于 2020-10-19 02:12
  • 阅读 ( 476 )

结构化的(structured)和非结构化编程(unstructured programming)的区别

...,代码是作为一个块编写的。 目录 1. 概述和主要区别 2. 什么是结构化编程 3. 什么是非结构化编程 4. 结构化与非结构化编程的相似性 5. 并列比较-表格形式的结构化与非结构化编程 6. 摘要 什么是结构化程序设计(structured programmi...

  • 发布于 2020-10-24 05:09
  • 阅读 ( 485 )

哦(oop)和流行音乐(pop)的区别

...在于POP创建和使用过程抽象,而OOP则侧重于数据抽象。 什么是哦(oop)? 面向对象编程(OOP)基于两个主要概念:对象和类。对象是包含数据和操作该数据的过程的结构。这些对象可以用于建模真实世界实体。对象有两个特征:...

  • 发布于 2020-10-28 20:06
  • 阅读 ( 266 )

你应该知道的5种函数式编程语言

...势,你就会听说函数式编程。这个词经常被提及,但它是什么意思呢? ...

  • 发布于 2021-03-20 18:46
  • 阅读 ( 620 )

如何学习c编程与这个初学者的项目

...是它的参数,不过在本例中,它不接受任何值,这就是为什么要使用void关键字。 ...

  • 发布于 2021-03-22 14:01
  • 阅读 ( 207 )

什么是编程中的函数?

... 什么是函数(a function)? ...

  • 发布于 2021-03-29 16:35
  • 阅读 ( 258 )

哦(oop)和流行音乐(pop)的区别

...”。面向对象编程和面向过程编程就是这样两种范式。 什么是面向对象程序设计(object oriented programming (oop))? OOP是一种高级编程语言,其中使用面向对象模型将程序划分为称为对象的小块,因此得名。这个范例是基于对象和类...

  • 发布于 2021-06-25 02:06
  • 阅读 ( 253 )

建造师(constructor)和析构函数(destructor)的区别

...时重用元素。在类中定义的数据或变量称为实例变量。 什么是建造师(a c***tructor)? 构造函数是类的特殊成员函数,在创建对象实例时调用它。有时很难在每次创建实例时初始化类中的所有变量。由于初始化需求在面向对象编...

  • 发布于 2021-06-25 08:36
  • 阅读 ( 260 )

存储过程(stored procedure)和功能(function)的区别

...Perl等编程语言允许程序员创建函数。 覆盖的关键领域 1.什么是存储过程–定义,示例2.什么是函数–定义,示例3.存储过程和函数之间的区别–关键区别的比较 关键术语 函数,存储过程 什么是存储过程(a stored procedure)? 存储...

  • 发布于 2021-06-30 23:16
  • 阅读 ( 1060 )
c94091211
c94091211

0 篇文章

相关推荐