Форум » [x]Harbour » Hb_Default() » Ответить

Hb_Default()

Dima: Может я не совсем понимаю как это работает. Вопрос выделил красным. [pre2] #include "common.ch" proc main local j j:=Test("123","1234") ? j[1] // Почему возвращает NIL (я думал это аналог #xcommand DEFAULT) ? ? j[2] // 1234 return ************** Func Test(par,par1) hb_default(@par,nil) default par1 to nil return {par,par1} [/pre2]

Ответов - 6

SergKis: Dima i_pseudofunc.ch в MiniGui include: [pre2] #xcommand DEFAULT <v1> TO <x1> [, <vn> TO <xn> ] => ; IF <v1> == NIL ; <v1> := <x1> ; END ; [; IF <vn> == NIL ; <vn> := <xn> ; END ] ... # xtranslate hb_default( @<v>, <x> ) => iif( StrTran( ValType( <v> ), "M", "C" ) == StrTran( ValType( <x> ), "M", "C" ),Nil, <v> := <x> ) ... [/pre2]

Dima: я про HB_default из core-master\src\rtl\hbdef.c

SergKis: так они практически идентичны (по результату), типа установка значения по ссылке


Петр: Dima пишет: Почему возвращает NIL (я думал это аналог #xcommand DEFAULT) ? Что просили, то и возвращает. Замените hb_default(@par,nil) на hb_default(@par,par)

Sergy: Dima [pre2]2012-06-04 17:51 UTC+0200 Viktor Szakats (vszakats.net/harbour) * include/harbour.hbx * src/rtl/Makefile + src/rtl/hbdef.c + added HB_DEFAULT( @<xVariable>, <xDefaultValue> ) it can replace DEFAULT ... TO ... command. In addition it will set the value to the default one even when the variable has any other type, not only NIL.[/pre2]

Dima: Sergy пишет: variable has any other type, not only NIL. Всем спасибо. Все понял.



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