Каква е функцията в програмирането?

Каква е функцията в програмирането?

Често ли се оказвате, че копирате и поставяте кода си за повторна употреба в различни раздели на програмата си?





Ако е така, може да помислите за използване на функции. Функциите са много мощна характеристика на езиците за програмиране. Те могат да направят кода по -ефективен, по -лесен за четене и елегантен.





Какво е функция?

Функцията е блок код, който изпълнява задача. Може да се извиква и използва многократно. Можете да предавате информация на функция и тя може да изпраща информация обратно. Много езици за програмиране имат вградени функции, до които можете да получите достъп в тяхната библиотека, но можете също да създадете свои собствени функции.





Когато извикате функция, програмата ще постави на пауза текущата програма и ще изпълни функцията. Функцията ще се чете отгоре надолу. След като функцията е завършена, програмата продължава да работи там, където е била на пауза. Ако функцията върне стойност, тази стойност ще се използва там, където функцията е била извикана.

Как пишете функция?

Има много различни начини за писане на функции. Точният синтаксис ще зависи от езика, на който програмирате. Ще покажем примери в Python, JavaScript и C ++, за да демонстрираме набор от синтаксис за програмиране.



Свързани: Защо езиците за програмиране не могат да съществуват без функции

Функции за празнота

Първият тип функция, която ще разгледаме, е функция void. Това просто означава, че функцията не връща стойност. Функциите за анулиране се използват за попълване на набор от инструкции. В тези примери функцията, която написахме, се извиква helloFunction . Целта на функцията е да изведе „Hello World“.





СЪВЕТ: дайте имена на функции, които обясняват какво правят. Ще бъде по -лесно да управлявате функции и да четете кода, тъй като вашата програма става по -сложна.

Python





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

Ключовата дума def се използва в Python за дефиниране и създаване на функция. След това е името на функцията. Инструкциите във функцията следват на следващия ред след дебелото черво. Бялото пространство има значение в Python, така че не забравяйте да отстъпите целия код, който искате да изпълнява функцията ви. В горния пример функцията изпълнява един ред код.

Проницателните ви очи може би са забелязали това print () също е функция, но се нарича различно от нашата функция. Задръжте тази мисъл в момента, по -късно ще изследваме параметрите на функциите.

JavaScript

xbox one x срещу xbox series x
function helloFunction(){
alert('Hello World!');
}
helloFunction();

В JavaScript ключовата дума функция се използва за създаване на функции. След това имаме името на функцията. Всеки код, който попада между фигурните скоби, се изпълнява при извикване на функцията.

Празното пространство не е важно в JavaScript, но е обичайно да се отстъпва кодът във функцията. Вдлъбнатините правят кода по -лесен за четене, което е много важно, тъй като вашите програми стават по -сложни.

Забележка: Подобно на print () в по -ранния пример, тревога() също е функция.

C ++

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

Функциите се създават по различен начин в C ++. Вместо ключова дума за дефиниране на функция, първата дума описва типа данни, които функцията ще върне. В този случай нашата функция не връща никакви данни, така че данните са анулирани. След това имаме името на функцията. Подобно на JavaScript, целият код между фигурните скоби се изпълнява при извикване на функцията. Също като JavaScript, празното пространство не засяга функцията, но е добра практика.

Забелязали ли сте друга функция в кода на C ++? Да, main () е функция. Когато изпълнявате програма на C ++, автоматично извиквате основната функция. Когато основната функция е успешно завършена, тя връща 0, когато излиза от програмата, за да сигнализира, че няма грешки при изпълнението на програмата.

Функции, които изискват стойности

Функциите за анулиране са чудесни, ако установите, че пишете един и същ бит код отново и отново. Но те могат да бъдат ограничаващи. Те са статични и не се променят. Те винаги изпълняват едни и същи инструкции. Един от начините, по които можем да увеличим тяхната полезност, е да предадем различни стойности на функцията.

Ще забележите, че скобите следват имената на всички наши функции. В скобите можем да декларираме, че са необходими данни за изпълнение на нашата функция. След това можем да използваме данните, предадени на нашата функция във функцията. Нека да разгледаме предишните примери отново, но този път предайте фразата, че искаме да бъдем изведени.

Python

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

Сега, между скобите, нашата функция декларира, че се нуждае от променлива за изпълнение. Ние сме кръстили променливата newPhrase и вече можем да го използваме в нашата функция. Когато извикваме функцията, трябва да предадем исканата информация, като я поставим между скобите. Същите промени бяха направени в JavaScript.

JavaScript

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

C ++

компютърът не показва какво пишете
#include
using namespace std;
void helloFunction(string newPhrase){
cout << newPhrase;
}
int main(){
helloFunction('Our new Phrase');
return 0;
}

Нашата C ++ функция изискваше малко повече информация. Знаем, че вашата функция иска низови данни, но това не е достатъчно добро за C ++. Когато създавате своята функция, трябва да посочите какъв тип данни изисква вашата функция. Ако не изпратите правилния тип данни, функцията ще създаде грешка.

Това може да изглежда малко досадно, но строгите езици често могат да ви спестят главоболия. Ако напишете функция в JavaScript, която изисква цяло число, но номерът се изпраща като низ, тя може да създаде грешка, която е много трудна за проследяване.

Свързани: 5 функционални езика за програмиране, които трябва да знаете

Функции, които връщат стойност

Последната функционална способност, която ще покрием, е връщане на данни. Това е особено ценно, когато искате да промените данните, преди да ги използвате. Въпреки че можете да напишете това вградено, ако ще използвате едни и същи изчисления много пъти, като например преобразуване на имперски в метрични, може да има повече смисъл да го напишете като функция. Нашият пример ще бъде по -прост. Нашата функция ще изисква две цели числа и ще върне сумата.

Python

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

В този пример нашата функция изисква две променливи вместо една. Показваме това, като разделяме имената на променливите със запетая. Ключовата дума връщане казва на функцията да върне следните данни, в този случай 2 + 4 или 6. Извикваме функцията вътре в print () функция.

След като нашата програма стигна до този ред, тя щеше да спре, да изпълни нашата функция и след това да продължи като че ли добавяне на функция (2, 4) всъщност беше само върнатата стойност 6.

JavaScript

JavaScript кодът е много подобен на кода на Python. Основната разлика е, че функцията се извиква в сигнал.

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

C ++

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

C ++ кодът работи по подобен начин, но както обикновено, изисква малко повече информация. Първо, трябва да кажем какъв тип данни ще върне функцията ни. Ще видите това невалиден е променен на int . Това означава, че вместо да връща никакви данни, нашата функция ще върне цяло число. Освен това кодът е подобен на кода, който вече проучихме.

Управлявайте вашите функции

Забавно нещо за функциите е, че функциите могат да извикват други функции. Те дори могат да се обадят! Но с голяма сила идва и голяма отговорност. Не полудявайте, създавайки код с функции, които извикват други функции, които извикват още функции.

Както бе споменато, всеки път, когато се извика функция, програмата спира, докато изпълнява функцията. Това означава, че програмата се съхранява в активна памет. Ако извикате още няколко функции, без да ги завършите, използвате по -активна памет. Ако не внимавате, програмата ви може да излезе извън контрол.

Дял Дял Туит електронна поща Как да поддържате кода си чист с капсулиране на обекти

Глобалните променливи може да изглеждат прости, но те често са причина за толкова много грешки. Ето как да опростите кода си с капсулиране.

Прочетете Напред
Свързани теми
  • Програмиране
  • Програмиране
  • Функционално програмиране
За автора Дженифър Сийтън(21 статии са публикувани)

Дж. Сийтън е научен писател, специализиран в разбиването на сложни теми. Има докторска степен от университета в Саскачеван; нейното изследване се фокусира върху използването на базирано на игри обучение за повишаване на ангажираността на учениците онлайн. Когато тя не работи, ще я намерите с четене, игра на видео игри или градинарство.

Още от Дженифър Сийтън

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате