Форум » [x]Harbour » Локальные переменные и блоки кода » Ответить

Локальные переменные и блоки кода

Sergey Spirin: Подскажите пожалуйста, по времени жизни LOCAL-переменных, но которые были "задействованы" в блоках кода, которые в свою очередь были переданы во вне функции или метода. По каким "правилам" они живут? Интересно, даже, как такая ситуация разруливается, по идее при выходе из функции, этой переменной уже быть не должно? Однако исполнение блока остается возможным. И второй вопрос, что за директива "default"? Тут пользователь код прислал типа: local i:=1,xx:=0 default bGotop:={||i:=1},bSkipPlus1:={||i:=i+1} Что-то я про default ничего не знаю.

Ответов - 7

Pasha: Да все как в клиппере. В переменных (Item) есть счетчик использования. Если local используется в блоке кода, этот счетчик будет равен двум. Когда он станет ноль - переменная будет освобождена. А default - это просто команда препроцессора: #xcommand DEFAULT <v1> TO <x1> [, <vn> TO <xn> ] => ; IF <v1> == NIL ; <v1> := <x1> ; END ; [; IF <vn> == NIL ; <vn> := <xn> ; END ]

PSP: 2. Есть команда DEFAULT TO, но у нее немного другой синтаксис. Какой компилятор используешь?

Sergey Spirin: Pasha пишет: Да все как в клиппере. В переменных (Item) есть счетчик использования.... Ok. Спасибо. Я предполагал также, но так как с Clipper/Harbour сам то плотно не работаю (и не работал), то и засомневался. PSP пишет: 2. Есть команда DEFAULT TO, но у нее немного другой синтаксис. Какой компилятор используешь? Еще не знаю Но сегодня, наверное, узнаю : http://groups.google.com/group/fastreport_for_x_harbour/browse_thread/thread/89da5026cd3b74e8#


Pasha: Эту команду можно ведь по разному определять Например, так: #xcommand DEFAULT <uVar1> := <uVal1> ; [, <uVarN> := <uValN> ] => ; <uVar1> := If( <uVar1> == nil, <uVal1>, <uVar1> ) ;; [ <uVarN> := If( <uVarN> == nil, <uValN>, <uVarN> ); ] Это в fwh так Эти вопросы к frh отношения не имеют, так что отшивайте :)

Sergey Spirin: Pasha пишет: Это в fwh так Эти вопросы к frh отношения не имеют, так что отшивайте :) Ну, зачем уж "отшивать". . Значит fivewin-щик. Я когда глянул на его код, то "local i:=1" и заподозрил, но похоже дело не в этом...

Pasha: Заодно расскажите пожалуйста, какое примерно соотношение пользователей frh/frx/frfox, если судить по этой группе в гугле.

Sergey Spirin: Pasha пишет: Заодно расскажите пожалуйста, какое примерно соотношение пользователей frh/frx/frfox, если судить по этой группе в гугле. В этой конфе, в основном, все харбуристы, процентов 80-85 где-то. Остальные алясочники, которые "не немцы" :) Немцы больше любители писать мне напрямую, либо "перетирать между собой", типа: http://xbaseforum.de/viewforum.php?f=56&sid=3bc5ab1f2850a2f7a8124fcebeec5986 Но самый "благодарный" пользователь конфы все-таки алясочник, испанец Jose Manuel Garcia del Valle, он как-то старается другим помогать. Фоксовиков здесь еще нет, ну или "один пробегал". Это "народ особый и отдельный", находящийся сейчас в самом разгаре депрессии Продажа FrFox началась совсем недавно, очень странная география коммерческого интереса, типа Индонезия, Филипины, Индия. Остальные же "как мешком пыльным ударенные", какое-то бесконечное хождение по кругу, типа "и хочется и колется"



полная версия страницы