{整数求和函数,使用指定类型的开放数组} function Fun1(arr: array of Integer): Integer; var n: Integer; begin Result := 0; for n in arr do Inc(Result, n); end; {整数、浮点数或布尔值的求和函数,使用无类型的开放数组} function Fun2(arr: array of const): Double; var i: Integer; begin Result := 0; for i := Low(arr) to High(arr) do begin case arr[i].VType of vtInteger: Result := Result + arr[i].VInteger; vtExtended: Result := Result + arr[i].VExtended^; vtBoolean: Result := Result + Integer(arr[i].VBoolean); end; end; end; {测试} procedure TForm1.FormCreate(Sender: TObject); var n1,n2: Integer; f1,f2: Double; begin n1 := Fun1([1, 2, 3]); //6 n2 := Fun1([1, 2, 3, 4, 5, 6, 7, 8, 9]); //45 f1 := Fun2([1, 2, 3]); //6.00 f2 := Fun2([True, 1.1, 2.2, 3.3]); //7.60 ShowMessageFmt('%d, %d, %f, %f', [n1, n2, f1, f2]); end;
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步