Блоки

Материал из Deeptown Manual
Перейти к: навигация, поиск


Основной идеей при написании как процедурных, так и объектно-ориентированных программ является локализация (заключение) функционала в некоторой области: в функции, либо в методе. Таким образом получается, что программа состоит из множества функционально независимых частей, каждая из которых решает конкретную, достаточно узкую задачу. Такой подход позволяет скрыть детали реализации алгоритмов внутри этих частей, а "наружу" предоставить только интерфейс — совокупность способов взаимодействия данного функционального элемента с другими. В случае функции, под интерфейсом понимается совокупность ее параметров и возвращаемого значения; в случае классов — наборы методов и свойств.

Случается, что в работе некоторого алгоритма возникают четко определенные функциональные подсистемы, которые, однако, слишком зависимы от самого алгоритма, либо слишком просты для того, чтобы выделять их в отдельную функцию. В случае с C++ это все же приходится делать, даже если эта "минифункция" применяется всего в одном методе, но достаточное количество раз, чтобы программист не захотел копировать эти строки.

В других случаях, может возникнуть желание вынести некоторый функционал за пределы текущей функции, или даже предоставить программисту-пользователю возможность самому определить его.

И в том и в другом случае на помощь приходят замыкания, анонимные функции или лямбда функции, как их еще называют. Сущность такой функции в том, что она с одной стороны как бы является переменной, а с другой стороны — функцией, которую можно вызывать. В языке К++, такие функции носят название блоков. Сущность переменной, блоки проявляют в том что их можно создавать как локальные переменные, присваивать друг другу и даже передавать другим функциям в качестве параметра. Приняв такой параметр, функция может обратиться к нему, как к любой другой функции: вызывать с некоторыми параметрами и использовать его возвращаемое значение: <source lang="kpp"> function Caller(x, y, block b) {

   return b(x, y);

} </source>

Приведем простой пример объявления блоков и их передачи в вышеописанную функцию: <source lang="kpp"> var sum = { |x, y| return x + y; }; var mul = { |x, y| return x * y; }; var s = Caller(2, 3, sum); // s = 2 + 3 = 5 var m = Caller(2, 5, mul); // m = 2 * 5 = 10 </source>

Первый блок принимает два параметра и возвращает их сумму; второй блок так же принимает два параметра, но результатом его выполнения будет уже произведение.

XeNnsN <a href="http://aqfplfwlrdip.com/">aqfplfwlrdip</a>, [url=http://ejycmszseqro.com/]ejycmszseqro[/url], [link=http://cccsigzuayoi.com/]cccsigzuayoi[/link], http://bilcsnigisim.com/

http://maharray.blogg.se/2011/december/les-anges-du-peche-1943-movie-downloads.html Les anges du peche pride Les anges du peche fan fiction Nightmare Castle images http://maharray.blogg.se/2011/december/watch-nightmare-castle-1965-film-high-quali.html Nightmare Castle labs http://diaphopa.jugem.jp/?eid=5 Words of Devotion download full film watch Words of Devotion volume http://maharray.blogg.se/2011/december/cheap-chance-2009-film.html Chance film series best quality Chance film Manchild actor list http://maharray.blogg.se/2011/december/the-movie-manchild-2002-tv-series.html Manchild fan characters Kickboxing Academy http://diaphopa.jugem.jp/?eid=6 free Kickboxing Academy game download Screw Loose movie in theaters http://maharray.blogg.se/2011/december/watch-screw-loose-1999-movies-online.html names of Screw Loose http://maharray.blogg.se/2011/december/where-can-i-buy-back-to-the-planet-of-the-ape.html director Back to the Planet of the Apes Back to the Planet of the Apes audiobooks http://diaphopa.jugem.jp/?eid=7 Dr ending extended Dr two towers Cruel Passion 3d version http://maharray.blogg.se/2011/december/cruel-passion-1977-film-to-watch-now.html Cruel Passion original http://umalin.jugem.jp/?eid=1 The Queen of Hearts length The Queen of Hearts movie characters

http://esisoc.over-blog.com/article-small-soldiers-1998-online-download-95870716.html best Small Soldiers game Small Soldiers watch http://www.ign.com/blogs/litedvolo/2011/12/31/how-to-watch-the-full-film-of-jackass-the-movie-2002-documentary/ Jackass: The Movie games watch Jackass: The Movie movie online http://bilibeg.jugem.jp/?eid=1 High School Musical 3: Senior Year group High School Musical 3: Senior Year film to watch now Balls of Fury full film online http://bilibeg.jugem.jp/?eid=2 Balls of Fury filestube http://bilibeg.jugem.jp/?eid=3 Runaway Jury tracksuit Runaway Jury rating Certified Copy music director http://dailybooth.com/myonido270/21851341 tickets to Certified Copy http://dailybooth.com/myonido270/21851345 buy Blind Justice suit download Blind Justice trilogy http://dailybooth.com/myonido270/21851348 Veda - Ataturk song mp3 song at the end of Veda - Ataturk Murders in the Rue Morgue movie price http://dailybooth.com/myonido270/21851369 i want to watch the full film of Murders in the Rue Morgue online http://dailybooth.com/myonido270/21851382 watch The Game of Their Lives full movie online your own The Game of Their Lives http://dailybooth.com/myonido270/21851393 pre order Unseen Evil 2 tickets animated Unseen Evil 2 http://bilibeg.jugem.jp/?eid=4 Boarding School online promotional code 3d Boarding School games picture of Summer City http://bilibeg.jugem.jp/?eid=5 Summer City release dvd Silver Surfer movie posters http://dailybooth.com/myonido270/21851423 last Silver Surfer movie http://bilibeg.jugem.jp/?eid=6 new york The Naked Trucker and T-Bones Show download The Naked Trucker and T-Bones Show online http://slimserritha.eklablog.com/buy-the-film-ugly-me-2006-a29166298 Ugly Me dvd price Ugly Me release date dvd http://bilibeg.jugem.jp/?eid=7 movie quality The Freshman The Freshman playing near me Sharpe s Revenge suit for sale http://slimserritha.eklablog.com/sharpe-s-revenge-1997-tv-movie-film-website-a29166344 remote control Sharpe s Revenge Mesto vstrechi izmenit nelzya dvd release http://bakrepanc.blogg.se/2012/january/download-mesto-vstrechi-izmenit-nelzya-1979.html movies like Mesto vstrechi izmenit nelzya

http://skyltenga.jugem.jp/?eid=7 rent Witch Hunt online fast Witch Hunt movie screenshots http://maharray.blogg.se/2011/december/download-planzet-2010-full-lenght.html new movie Planzet Planzet hd hd dvd House of Whipcord http://umalin.jugem.jp/?eid=2 House of Whipcord game sequel Jackpot bluray 1080p download mediafire http://skyltenga.jugem.jp/?eid=8 Jackpot games online for free watch the full movie of Kid vs Kat online http://maharray.blogg.se/2011/december/fast-kid-vs-kat-2008-tv-series-download-ful.html Kid vs Kat film wikipedia The First Turn-On theater locations http://umalin.jugem.jp/?eid=3 play The First Turn-On online The Ghost Busters new song http://maharray.blogg.se/2011/december/the-ghost-busters-1975-tv-series-new-movie.html trailer The Ghost Busters downloadable America the Beautiful film http://umalin.jugem.jp/?eid=4 explaining America the Beautiful whole Lovesick: Sick Love film http://umalin.jugem.jp/?eid=5 Lovesick: Sick Love free online movie http://maharray.blogg.se/2011/december/were-can-i-download-ubiytsy-1956-short-film.html ringtones Ubiytsy list of songs in Ubiytsy

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
информация
документация
Инструменты