tforin4.pp 804 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. program tforin4;
  2. // test that for-in loop allows array modifications inside the loop body
  3. {$mode objfpc}{$H+}
  4. {$APPTYPE CONSOLE}
  5. type
  6. TMyArray = array of integer;
  7. function return_array: TMyArray;
  8. begin
  9. SetLength(result, 3);
  10. result[0] := 1;
  11. result[1] := 2;
  12. result[2] := 3;
  13. end;
  14. procedure TestArrayReturn;
  15. var
  16. i: integer;
  17. begin
  18. for i in return_array do
  19. WriteLn(i);
  20. end;
  21. procedure TestDynamicArray;
  22. var
  23. i: integer;
  24. a: array of integer;
  25. begin
  26. setlength(a, 3);
  27. a[0]:=1;
  28. a[1]:=2;
  29. a[2]:=3;
  30. for i in a do
  31. begin
  32. WriteLn(i);
  33. a[2] := -1;
  34. end;
  35. end;
  36. procedure TestOpenArray(a: array of integer);
  37. var
  38. i: integer;
  39. begin
  40. for i in a do
  41. begin
  42. WriteLn(i);
  43. a[2] := -1;
  44. end;
  45. end;
  46. begin
  47. TestOpenArray([1,2,3]);
  48. TestDynamicArray;
  49. TestArrayReturn;
  50. end.