首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 動態陣列賦值新寫法:VarArrayOf 讓程式碼更優雅

     編輯:Delphi

曾經幻想 Delphi 能像現代語言那樣簡潔賦值陣列:arr := [...];。其實 VarArrayOf 早就存在,只是習慣使然未曾善用。

基本用法:支援泛型的動態陣列初始化

var bs: TBytes; { 等同於 TArray<Byte> }
begin
  { 無需預先 SetLength }
  bs := VarArrayOf([11, 22, 33]); 
  ShowMessage(IntToStr(bs[2])); { 輸出: 33 }
end;

var strArr: TArray<string>;
begin
  strArr := VarArrayOf(['AAA','BBB','CCC' ]);
  ShowMessage(strArr[2]); { 輸出: CCC }
end;

重要限制

  • 僅適用於動態陣列(含泛型寫法 TArray<T>)
  • 不支援靜態陣列(如 array[0..2] of Integer)
  • 作為函式參數時,僅支援傳統動態陣列語法(array of Integer),不支援泛型 TArray<Integer>

實戰應用:開放陣列參數的簡潔呼叫

function GetSum(aArr: array of Integer): Integer; 
var i: Integer; 
begin 
  Result := 0; 
  for i in aArr do Inc(Result, i); 
end;

procedure TForm1.FormCreate(Sender: TObject); 
var n: Integer; 
begin 
  n := GetSum([1, 2, 3]); 
  ShowMessage(IntToStr(n)); { 6 } 
  
  n := GetSum([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); 
  ShowMessage(IntToStr(n)); { 55 } 
end;

額外發現:GDI+ Bitmap.Pixels[] 高效能像素存取

在 GDI+ 中,TGPBitmap.Pixels[] 屬性提供了比 TCanvas.Pixels[] 快得多的像素級存取效能,這是一個長期被忽視的高效能寶藏功能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved