分類
數字趨勢

编程中有什么功能?

您是否经常发现自己复制并粘贴代码以在程序的不同部分中重复使用?

如果是这样,您可能要考虑使用函数。函数是编程语言的一项非常强大的功能。它们可以使代码更高效,更易于阅读且更美观。

什么是功能?

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

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

您如何编写函数?

有许多不同的方法来编写函数。确切的语法将取决于您使用的编程语言。我们将显示Python,JavaScript和C ++的示例,以演示各种编程语法。

相关:为什么没有功能就不能存在编程语言

虚函数

我们将要看的第一类函数是void函数。这仅表示该函数不返回值。虚函数用于完成一组指令。在这些示例中,我们编写的函数称为helloFunction 。该功能的目的是输出“ Hello World”。

提示:给函数名称说明其功能。随着程序变得越来越复杂,管理功能和读取代码将变得更加容易。

蟒蛇

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

关键字def在Python中用于定义和创建函数。接下来,是函数的名称。函数中的指令位于冒号后的下一行。空格在Python中很重要,因此请确保缩进要运行函数的所有代码。在上面的示例中,该函数运行一行代码。

您敏锐的眼睛可能已经注意到print()也是一个函数,但其​​调用方式与我们的函数不同。紧紧抓住这个想法,我们稍后将探讨函数和参数。

的JavaScript

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

在JavaScript中,关键字function用于创建函数。接下来,我们有函数的名称。调用函数时,将运行大括号之间的所有代码。

空格在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函数。当主函数成功完成时,它在退出程序时返回0,以表示没有错误运行该程序。

需要值的函数

如果发现您一次又一次地编写相同的代码,则虚函数非常有用。但是它们可能是限制性的。它们是静态的,不会改变。他们总是完成相同的说明。我们可以提高其用途的一种方法是将不同的值传递给函数。

您会注意到,方括号位于我们所有函数的名称之后。在方括号中,我们可以声明运行我们的函数需要数据。然后,我们可以在函数中使用传递给函数的数据。让我们再次看一下前面的示例,但是这次传递我们想要输出的短语。

蟒蛇

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编写一个需要整数的函数,但数字是以字符串形式发送的,则可能会导致很难跟踪的错误。

相关:您应该知道的5种功能编程语言

返回值的函数

我们将介绍的最后一个功能是返回数据。当您想在使用前更改数据时,这特别有价值。尽管您可以内联编写,但是如果多次使用相同的计算(例如将英制转换为公制),则将其编写为函数可能更有意义。我们的示例将更简单。我们的函数将需要两个整数,并将返回总和。

蟒蛇

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

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

一旦程序到达该行,它将暂停,运行我们的函数,然后继续执行,就好像addFunction(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 。这意味着我们的函数将不返回任何数据,而将返回一个整数。除此之外,该代码与我们已经探索的代码相似。

管理您的职能

函数的有趣之处在于,函数可以调用其他函数。他们甚至可以自称!但是,强大的力量带来巨大的责任。不要用调用其他函数的函数来创建代码,而这些函数会调用其他函数。

如前所述,每次调用函数时,程序都会在运行该函数时暂停。这意味着程序被保存在活动存储器中。如果您在未完成的情况下又调用了几个功能,则您正在使用更多的活动内存。如果不小心,程序可能会失控。