The Delphi Language for Mobile Development 白皮書 |
|
Main Chen
高階會員 發表:29 回覆:135 積分:127 註冊:2002-10-07 發送簡訊給我 |
|
Main Chen
高階會員 發表:29 回覆:135 積分:127 註冊:2002-10-07 發送簡訊給我 |
在 4 月份的研討會中, 李維投影片曾提到:
Other Language Changes
編輯記錄
Main Chen 重新編輯於 2013-04-26 17:52:49, 註解 無‧
|
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
原因與string 的mutable/immutable一樣。
它對應到cocoa的NSMutableArray。 簡單說就是因為ios裡的字串/陣列都分成mutable與immutable二類。對於runtime時若內容會被修改的資料,一律要mutable。 但這樣的觀念在delphi裡是比較混淆的…也就是,delphi是一種「混種」,即static的東西依舊還是可以變動內容。但這樣的觀念 在ios裡是不通的。所以,原則上用dynamic array 就不會有問題,因為這種本來就是隨時可變動其內容的型別。
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan
編輯記錄
aftcast 重新編輯於 2013-04-27 00:01:20, 註解 無‧
|
Main Chen
高階會員 發表:29 回覆:135 積分:127 註冊:2002-10-07 發送簡訊給我 |
感謝蕭大俠的回復!
而 Replace static arrays with dynamic arrays 是不是意指下列的改法? [code delphi] // 原來用 static array procedure test; var ary: array[0..9] of integer; begin ... end; // 改成 dynamic array procedure test; var ary: array of integer; begin SetLength(ary, 10); end; [/code] |
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
|
Main Chen
高階會員 發表:29 回覆:135 積分:127 註冊:2002-10-07 發送簡訊給我 |
|
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
我想,問題應該不是效能,而是會不會出事…
如果說你靜態array,定義後(即初始化後),若不在變動。原則上不會有問題,也很好,速度也快。 但若你定義後,在runtime的時間試著去改,比如 foo[3] = 'A' ,那麼理論上會出事…我不確定此刻的delphi for ios會不會掛,但未來應該是不被建議。就好像string,以目前來說似乎也是不會掛,只是效能變差… 但白皮書寫,未來應該會被禁止,所以建議… 我的看法是: 若靜態初始化後不再被變,比如宣告一週的
===================引 用 Main Chen 文 章=================== 之前有試著將源碼改成上述方式,但執行在 iPhone 實機此測試,速度也沒什麼提升,而程式確變大了不少。 而白皮書裡提到的迴圈裡的字串相加用 TStringBuilder 就有明顯的差異了。
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
Main Chen
高階會員 發表:29 回覆:135 積分:127 註冊:2002-10-07 發送簡訊給我 |
感謝您詳細的說明
另外如果在 record 或 class 裡的 static array 是否也一樣建議改成 dynamic array? TData = class x: array[0..9] of Double; end; 改成: TData = class x: array of Double; public constructor Create; virtual; end; constructor TData.Create; begin SetLength(x, 10); end; 感覺上好像多此一舉?
編輯記錄
Main Chen 重新編輯於 2013-04-30 09:07:58, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |