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

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

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

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

Какво представлява рекурсията и как я използвате?

Научете основите на рекурсията, същественият, но леко умопомрачителен инструмент за програмистите.

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

instagram viewer

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

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

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

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

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

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

Python

def helloFunction ():
print ("Hello World")
здравейФункция ()

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

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

JavaScript

функция helloFunction () {
предупреждение („Здравей, свят!“);
}
helloFunction ();

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

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

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

C ++

#include 
използване на пространство от имена std;
void helloFunction () {
cout << "Здравей, свят!";
}
int main () {
helloFunction ();
връщане 0;
}

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

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

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

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

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

Python

def helloFunction (newPhrase):
печат (newPhrase)
helloFunction ("Нашата нова фраза")

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

JavaScript

функция helloFunction (newPhrase) {
предупреждение (newPhrase);
}
helloFunction ("Нашата нова фраза");

C ++

#include 
използване на пространство от имена std;
void helloFunction (низ newPhrase) {
cout << newPhrase;
}
int main () {
helloFunction ("Новата ни фраза");
връщане 0;
}

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

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

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

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

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

Python

def addFunction (a, b):
върнете a + b
печат (добавяне на функция (2, 4))

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

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

JavaScript

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

функция addFunction (a, b) {
върнете a + b;
}
предупреждение (addFunction (2, 4));

C ++

#include 
използване на пространство от имена std;
int addFunction (int a, int b) {
върнете a + b;
}
int main () {
cout << addFunction (2, 4);
връщане 0;
}

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

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

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

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

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

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

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

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

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

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

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

Още една стъпка…!

Моля, потвърдете имейл адреса си в имейла, който току-що ви изпратихме.

.