Delphi培訓第三天學習筆記
阿新 • • 發佈:2021-09-04
--位運算子:and、or、xor、not
shl(); --二進位制左移,相當於*2
shr(); --二進位制右移,相當於div 2
delphi中的函式和過程呼叫都是按就近原則,
比如有一個公共函式fun()和一個物件裡的函式TObject.fun(),
呼叫fun()函式的公共過程PubilcProc()和TObject.Proc()。
publicProc()中呼叫的就是公共函式fun(),而TOject.Proc()呼叫的就是自己物件內部的Tobject.fun()。
var與out宣告的引數都是引用傳遞,但out宣告的引數只能用於輸出。
const宣告的引數不允許被改變,因此編譯器能優化常參的傳遞,能提高執行效率。
預設引數:在引數宣告時為該引數賦值。
使用原則:
1,如果你省略了一個預設引數,那麼你也要省略這個引數後面的所有引數
2,不能跳過預設引數,直接輸入預設引數後面的引數
3,預設引數全部放在引數列表的最後,能避免上面兩種情況
4,預設引數必須是常量
5,預設引數必須是值傳遞或常參函式,不能是var宣告的引用引數
6,不建議同時使用預設引數和過載,很容易發生RuntimeError(系統會找到多個合適的過載函式)
開發陣列引數:陣列的型別已確定,但元素個數未知。例: const array of Integer
型別變化的開放陣列引數:陣列的型別和大小都不確定,元素型別由元素的Vtype屬性來判斷。
procedure proc1(const arr: array of const); var i: Integer; begin for i = low(arr) to high(arr) begin case arr[i].VType of vtString:....; vtInteger:..... end; end;
raise Exception.Create('');和Exit;的區別:Exit只是終止所在函式的執行,而raise exception丟擲了異常,會終止所在函式及呼叫該函式的物件的執行。
Delphi中的函式過載:在函式聲明後新增Overload關鍵字,並保證與其重名的函式的引數個數、型別不同。那麼系統會自動根據傳入引數的個數、型別選擇最匹配的過載函式。