本文为【人肉保证,Delphi中的out参数】的汉字拼音对照版显示拼音
Delphi里li面mian,用yong关guan键jian字zivar或huoout,可ke以yi让rang函han数shu参shen数shu按an传chuan递di引yin用yong,奇qi怪guai的de是shi,var和heout根gen本ben没mei有you本ben质zhi上shang的de区qu别bie,按an官guan方fang的de说shuo法fa:
An out parameter, like a variable parameter, is passed by reference. With an out parameter, however, the initial value of the referenced variable is discarded by the routine it is passed to. The out parameter is for output only; that is, it tells the function or procedure where to store output, but doesn't provide any input.
看kan上shang去qu,好hao象xiang是shi说shuo过guo程cheng里li不bu能neng去qu读duout参shen数shu的de值zhi,因yin为wei它ta的de初chu始shi值zhi是shi不bu可ke知zhi的de,但dan实shi际ji上shang如ru果guo你ni读du了le,编bian译yi器qi连lian个ge警jing告gao都dou没mei有you,而er且qieout参shen数shu也ye并bing不bu是shi被bei调tiao用yong者zhe事shi先xian清qing零ling(象xiangC#那na样yang),它ta唯wei一yi的de用yong处chu就jiu是shi让rang写xie过guo程cheng的de程cheng序xu员yuan警jing惕ti一yi下xia,这zhe个ge参shen数shu没mei有you什shen么me初chu始shi值zhi的de,只zhi能neng给gei它ta赋fu值zhi,而er永yong远yuan不bu要yao去qu用yong它ta的de值zhi……这zhe一yi切qie只zhi能neng靠kao程cheng序xu员yuan人ren肉rou保bao证zheng,编bian译yi器qi一yi点dian忙mang都dou帮bang不bu上shang。
{ 没mei有you一yi点dian警jing告gao }
var
tmp: Integer;
procedure Foo(out v: Integer);
begin
tmp := v;
v := 1;
end;
【原文】