您经常发现自己复制和粘贴代码以便在程序的不同部分重用吗?
如果是这样,您可能需要考虑使用函数。函数是编程语言的一个非常强大的功能。它们可以使代码更高效、更易读、更优雅。
函数是执行任务的代码块。它可以被多次调用和重用。您可以将信息传递给函数,它也可以将信息发送回去。许多编程语言都有内置函数,您可以在它们的库中访问这些函数,但您也可以创建自己的函数。
调用函数时,程序将暂停当前程序并执行该函数。函数将从上到下读取。函数完成后,程序将继续在暂停的位置运行。如果函数返回一个值,则该值将用于调用函数的位置。
编写函数的方法有很多种。确切的语法将取决于您正在使用的语言。我们将在Python、JavaScript和C++中演示示例,以演示一系列编程语法。
相关:为什么编程语言离不开函数
我们将看到的第一种函数类型是一个空函数。这只是意味着函数不返回值。Void函数用于完成一组指令。在这些例子中,我们编写的函数称为HellofnContation。该函数的目的是输出“HelloWorld”。
提示:给出函数名称,解释它们的工作。随着程序变得更加复杂,管理函数和读取代码会更容易。
关键字def在Python中用于定义和创建函数。接下来是函数的名称。函数中的指令紧跟在冒号后面的下一行。在Python中,空格很重要,所以一定要缩进希望函数运行的所有代码。在上面的例子中,函数运行一行代码。
您敏锐的眼睛可能已经注意到print()也是一个函数,但它的调用与我们的函数不同。现在请坚持这个想法,我们稍后将探讨函数和参数。
在JavaScript中,关键字函数用于创建函数。接下来,我们有了函数的名称。任何落在花括号之间的代码都将在调用函数时运行。
空格在JavaScript中并不重要,但通常在函数中缩进代码。缩进使代码更易于阅读,这在程序变得更复杂时非常重要。
注意:与前面示例中的print()非常相似,alert()也是一个函数。
函数在C++中被不同地创建。第一个词不是定义函数的关键字,而是描述函数将返回的数据类型。在这种情况下,我们的函数不返回任何数据,因此数据是无效的。接下来,我们有函数的名称。与JavaScript类似,花括号之间的所有代码都是在调用函数时运行的。同样与JavaScript类似,空格不影响函数,但是一种很好的做法。
你在C++代码中发现了另一个函数吗?是的,main()是一个函数。当你执行C++程序时,你会自动调用main函数。当main函数成功完成时,它在退出程序时返回0,表示运行程序时没有错误。
如果您发现自己在一遍又一遍地编写相同的代码,那么Void函数是非常好的。但它们可能是有限的。它们是静态的,不会改变。他们总是完成同样的指令。我们可以增加它们的有用性的一种方法是向函数传递不同的值。
你会注意到我们所有函数的名字后面都有括号。在括号中,我们可以声明运行函数需要数据。然后我们可以在函数中使用传递给函数的数据。让我们再看一次前面的例子,但这一次传递一个短语,我们希望输出。
现在,在括号之间,我们的函数声明它需要一个变量来运行。我们已经将变量命名为newPhrase,现在可以在函数中使用它。当我们调用函数时,我们需要通过将请求的信息放在括号之间来传递它。JavaScript中也做了同样的更改。
我们的C++函数需要更多的信息。我们知道你的函数需要字符串数据,但这对C++来说不够好。创建函数时,必须指定函数需要的数据类型。如果您没有发送正确类型的数据,则该函数将创建错误。
这可能看起来有点烦人,但严格的语言通常可以帮你省去头痛。如果您在JavaScript中编写一个需要整数的函数,但该数字是以字符串形式发送的,则可能会创建一个很难跟踪的bug。
相关:你应该知道的5种函数式编程语言
我们将要讨论的最后功能是返回数据。当您想在使用数据之前更改数据时,这一点特别有价值。虽然可以在内联中编写,但是如果您将多次使用相同的计算,如将imperial转换为metric,将其作为函数编写可能更有意义。我们的例子将更简单。我们的函数需要两个整数,并返回总和。
在这个例子中,我们的函数需要两个变量而不是一个变量。我们用逗号分隔变量名来表示。关键字返回告诉函数返回以下数据,在这种情况下,返回2+4或6。我们调用print()函数中的函数。
一旦程序到达该行,它将暂停、运行我们的函数,然后继续,好像addingFunction(2,4)实际上只是返回的值6。
JavaScript代码与Python代码非常相似。主要区别在于函数是在警报中调用的。
function addingFunction(a, b){ return a + b;}alert(addingFunction(2, 4));C++代码运行类似,但通常情况下,需要更多的信息。首先,我们必须说明函数将返回什么类型的数据。您将看到void已更改为int。这意味着函数将返回一个整数,而不是不返回任何数据。除此之外,代码与我们已经研究过的代码类似。
函数的有趣之处在于,函数可以调用其他函数。他们甚至可以自称!但权力越大,责任越大。不要疯狂地用调用其他函数的函数来创建代码。
如前所述,每次调用函数时,程序都会在运行函数时暂停。这意味着程序被保存在活动内存中。如果您调用多个函数而没有完成它们,那么您将使用更多的活动内存。如果你不小心,你的程序就会失控。
...文讨论了属性与参数的区别。 目录 1. 概述和主要区别 2. 什么是属性 3. 什么是参数 4. 并列比较-表格形式的属性与参数 5. 摘要 什么是属性(attribute)? Java等编程语言支持面向对象编程。这种编程范式是基于对象的。物体有一种状...
...式编程与命令式编程的区别。 目录 1. 概述和主要区别 2. 什么是函数式编程 3. 什么是命令式编程 4. 函数式编程与命令式编程的相似性 5. 并排比较-函数式编程与表格形式的命令式编程 6.摘要 什么是函数式程序设计(functional program...
...,代码是作为一个块编写的。 目录 1. 概述和主要区别 2. 什么是结构化编程 3. 什么是非结构化编程 4. 结构化与非结构化编程的相似性 5. 并列比较-表格形式的结构化与非结构化编程 6. 摘要 什么是结构化程序设计(structured programmi...
...在于POP创建和使用过程抽象,而OOP则侧重于数据抽象。 什么是哦(oop)? 面向对象编程(OOP)基于两个主要概念:对象和类。对象是包含数据和操作该数据的过程的结构。这些对象可以用于建模真实世界实体。对象有两个特征:...
...”。面向对象编程和面向过程编程就是这样两种范式。 什么是面向对象程序设计(object oriented programming (oop))? OOP是一种高级编程语言,其中使用面向对象模型将程序划分为称为对象的小块,因此得名。这个范例是基于对象和类...
...时重用元素。在类中定义的数据或变量称为实例变量。 什么是建造师(a c***tructor)? 构造函数是类的特殊成员函数,在创建对象实例时调用它。有时很难在每次创建实例时初始化类中的所有变量。由于初始化需求在面向对象编...
...Perl等编程语言允许程序员创建函数。 覆盖的关键领域 1.什么是存储过程–定义,示例2.什么是函数–定义,示例3.存储过程和函数之间的区别–关键区别的比较 关键术语 函数,存储过程 什么是存储过程(a stored procedure)? 存储...