怎麼還可以給更改常量值?難道我看錯了? |
答題得分者是:suzuki
|
h@visli
資深會員 發表:103 回覆:429 積分:431 註冊:2004-02-13 發送簡訊給我 |
怎麼還可以給更改常量值?難道我看錯了? 剛才在看Delphi 6的Corba源代碼時,無意發現一個小問題: Delphi 6 —— corba.pas
……
procedure CorbaInitialize;
const
Initialized: Boolean = False;
begin
if Initialized then Exit;
Initialized := True; ?<---- 常量還能改變值嗎?
TORB.init;
CorbaHookDispatch;
CorbaHookExceptions;
end;
…… 我正感到奇怪,難道是我看錯了還是功夫不到家?汗~~
於是我的打開Delphi 7中的Corba.pas檔,發現Initialized已改成變數了:
……
var
Initialized: Boolean = False; procedure CorbaInitialize;
begin
if not Initialized then
begin
Initialized := True;
TORB.init;
CorbaHookDispatch;
CorbaHookExceptions;
end;
end;
…… 請問上面Delphi 6的Corba.pas原始檔案中,怎麼還能改變常量的值? 發表人 - h@visli 於 2005/02/28 15:08:29
------
------------------------ 博采眾家之長,奉獻綿薄之力 ------------------------ |
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
Yes, constant can be modified... Dirty trick. BTW, in Delphi 7 you can do this < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=20623896&CC=461244"> http://pywong.hk.st http://www.lazybones.ca
|
suzuki
一般會員 發表:0 回覆:8 積分:6 註冊:2005-01-18 發送簡訊給我 |
你沒看錯, 這是正確的, 你需要再研究一下 Object Pascl 的語法了! 1. 非形態化常數宣告不得更改值:
如 const MyConst = True; 2. 形態化常數宣告可以更改值: (也可以稱她為靜態變數)
如 const MyConst : Boolean = True; 3. 全域變數可以同時設定初始值
如 var myVar: MyConst : Boolean = True; 4. 區域變數不可以同時設定初始值! 發表人 - suzuki 於 2005/03/07 18:43:16
|
a6475
高階會員 發表:67 回覆:230 積分:154 註冊:2002-09-15 發送簡訊給我 |
|
h@visli
資深會員 發表:103 回覆:429 積分:431 註冊:2004-02-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |