Да ли вам се често чини да копирате и налепите свој код за поновну употребу у различите одељке вашег програма?
Ако је то случај, можда бисте желели да размислите о употреби функција. Функције су врло моћна карактеристика програмских језика. Они могу да учине код ефикаснијим, лакшим за читање и елегантним.
Шта је функција?
Функција је блок кода који извршава задатак. Може се назвати и поново коришћена више пута. Можете проследити информације функцији, а она их може вратити. Многи програмски језици имају уграђене функције којима можете приступити у њиховој библиотеци, али такође можете креирати своје функције.
Научите основе рекурзије, основног, али помало збуњујућег алата за програмере.
Када позовете функцију, програм ће зауставити тренутни програм и извршити функцију. Функција ће се читати од врха до дна. Када је функција завршена, програм наставља да ради тамо где је паузирао. Ако је функција вратила вредност, та вредност ће се користити тамо где је функција позвана.
Како пишете функцију?
Постоји много различитих начина за писање функција. Тачна синтакса зависиће од језика на којем програмирате. Показаћемо примере у Питхон-у, ЈаваСцрипт-у и Ц ++-у да бисмо демонстрирали низ синтакса програмирања.
Повезан: Зашто програмски језици не могу постојати без функција
Воид Фунцтионс
Прва врста функције коју ћемо размотрити је воид функција. То једноставно значи да функција не враћа вредност. Функције празнине се користе за довршавање низа упутстава. У овим примерима се назива функција коју смо написали хеллоФунцтион. Сврха функције је да избаци „Хелло Ворлд“.
САВЕТ: дајте именима функција која објашњавају шта раде. Биће лакше управљати функцијама и читати код како ваш програм постаје сложенији.
Питхон
деф хеллоФунцтион ():
принт ("Здраво свете")
хеллоФунцтион ()
Кључна реч деф користи се у Питхону за дефинисање и креирање функције. Следеће је име функције. Упутства у функцији следе у следећем реду након двотачке. Празни простор је важан у Питхону, зато увуците сав код за који желите да се ваша функција извршава. У примеру изнад, функција покреће један ред кода.
Ваше оштре очи су то можда приметиле испис () је такође функција, али се зове другачије од наше функције. Држите се те мисли одмах, истражићемо функције параметара касније.
ЈаваСцрипт
функција хеллоФунцтион () {
упозорење („Здраво, свет!“);
}
хеллоФунцтион ();
У ЈаваСцрипт-у, кључна реч функцију користи се за стварање функција. Даље, имамо име функције. Било који код који падне између витичастих заграда покреће се када је функција позвана.
Празни простор није важан у ЈаваСцрипт-у, али је уобичајено увлачење кода у функцију. Увлачење чини код лакшим за читање, што је врло важно како ваши програми постају сложенији.
Напомена: Слично испис () у ранијем примеру, алерт () је такође функција.
Ц ++
#инцлуде
коришћење простора имена стд;
воид хеллоФунцтион () {
цоут << "Здраво свете!";
}
инт маин () {
хеллоФунцтион ();
ретурн 0;
}
Функције се различито креирају у Ц ++. Уместо кључне речи за дефинисање функције, прва реч описује врсту података које ће функција вратити. У овом случају, наша функција не враћа никакве податке, па су подаци неважећи. Даље, имамо име функције. Слично ЈаваСцрипт-у, сав код између витичастих заграда се покреће када се функција позове. Такође слично ЈаваСцрипт-у, размаци не утичу на функцију, али је добра пракса.
Да ли сте приметили другу функцију у Ц ++ коду? Да, главни() је функција. Када извршите програм Ц ++, аутоматски позивате главну функцију. Када је главна функција успешно завршена, враћа 0 када излази из програма да сигнализира да није било грешака у покретању програма.
Функције које захтевају вредности
Функције Воид су сјајне ако откријете да изнова и изнова пишете исти бит кода. Али они могу бити ограничавајући. Они су статични и не мењају се. Увек испуњавају иста упутства. Један од начина на који можемо повећати њихову корисност је преношење различитих вредности функцији.
Приметили сте да су заграде пратиле имена свих наших функција. У заградама можемо изјавити да су подаци потребни за покретање наше функције. Тада можемо користити податке прослеђене нашој функцији у функцији. Погледајмо поново претходне примере, али овај пут пренесите фразу за коју желимо да се изнесе.
Питхон
деф хеллоФунцтион (невПхрасе):
испис (невПхрасе)
хеллоФунцтион ("Наша нова фраза")
Сада, између заграда, наша функција изјављује да јој је потребна променљива за покретање. Назвали смо променљиву невПхрасе и сада може да га користи у нашој функцији. Када позовемо функцију, потребно је да проследимо тражене информације стављајући их између заграда. Исте промене извршене су и у ЈаваСцрипт-у.
ЈаваСцрипт
функција хеллоФунцтион (невПхрасе) {
упозорење (невПхрасе);
}
хеллоФунцтион ("Наша нова фраза");
Ц ++
#инцлуде
коришћење простора имена стд;
воид хеллоФунцтион (стринг невПхрасе) {
цоут << невПхрасе;
}
инт маин () {
хеллоФунцтион ("Наша нова фраза");
ретурн 0;
}
Наша функција Ц ++ захтевала је мало више информација. Знамо да ваша функција жели низ података, али то није довољно добро за Ц ++. Када креирате своју функцију, морате да одредите коју врсту података ваша функција захтева. Ако не пошаљете исправну врсту података, функција ће створити грешку.
Ово може изгледати помало досадно, али строги језици често вам могу уштедети главобољу. Ако на ЈаваСцрипт напишете функцију која захтева цео број, али се број шаље као низ, то може створити грешку којој је врло тешко ући у траг.
Повезан: 5 функционалних програмских језика које бисте требали знати
Функције које враћају вредност
Коначна функционална способност коју ћемо покрити је враћање података. Ово је посебно драгоцено када желите да измените податке пре него што их употребите. Иако бисте то могли написати у линији, ако ћете више пута користити исте прорачуне, попут претварања империјалног у метрички, можда би било логичније да га напишете као функцију. Наш пример ће бити једноставнији. За нашу функцију ће бити потребне две целобројне вредности и вратиће се збир.
Питхон
деф аддФунцтион (а, б):
врати а + б
испис (аддФунцтион (2, 4))
У овом примеру наша функција захтева две променљиве уместо једне. То означавамо раздвајањем имена променљивих зарезом. Кључна реч повратак говори функцији да врати следеће податке, у овом случају 2 + 4 или 6. Позивамо функцију унутар испис () функцију.
Једном када би наш програм дошао до те линије, зауставио би се, покренуо нашу функцију и наставио као да је аддФунцтион (2, 4) је заправо била само враћена вредност 6.
ЈаваСцрипт
ЈаваСцрипт код је врло сличан Питхон коду. Примарна разлика је у томе што се функција позива у упозорењу.
функција аддФунцтион (а, б) {
врати а + б;
}
упозорење (аддФунцтион (2, 4));
Ц ++
#инцлуде
коришћење простора имена стд;
инт аддФунцтион (инт а, инт б) {
врати а + б;
}
инт маин () {
цоут << додавањеФункције (2, 4);
ретурн 0;
}
Ц ++ код ради слично, али као и обично захтева мало више информација. Прво, морамо рећи коју врсту података ће наша функција вратити. Видећете то празнина је промењено у инт. То значи да ће наша функција, уместо да враћа податке, вратити цео број. Поред тога, код је сличан коду који смо већ истраживали.
Управљајте својим функцијама
Забавна ствар код функција је та што функције могу позивати друге функције. Чак се могу и сами позвати! Али са великом моћи долази и велика одговорност. Немојте полудети стварајући код са функцијама које позивају друге функције које позивају још више функција.
Као што је поменуто, сваки пут када се функција позове, програм прави паузу док извршава функцију. То значи да се програм чува у активној меморији. Ако позовете још неколико функција, а да их нисте довршили, користићете активнију меморију. Ако нисте пажљиви, ваш програм може измаћи контроли.
Глобалне променљиве могу изгледати једноставно, али често су узрок толико грешака. Ево како поједноставити свој код помоћу енкапсулације.
- Програмирање
- Програмирање
- Функционално програмирање
Ј. Сеатон је научни писац специјализован за разбијање сложених тема. Докторирала је на Универзитету у Саскатцхевану; њено истраживање се фокусирало на коришћење учења заснованог на играма за повећање ангажовања ученика на мрежи. Кад не ради, наћи ћете је док чита, игра видео игре или баштованство.
Претплатите се на наш билтен
Придружите се нашем билтену за техничке савете, прегледе, бесплатне е-књиге и ексклузивне понуде!
Још један корак…!
Молимо потврдите своју адресу е-поште у е-поруци коју смо вам управо послали.