- お知らせ -
  • 当wikiのプログラムコードの表示を直してみました(ついでに長い行があると全体が下にぶっ飛ぶのも修正)。不具合があればBBSまでご連絡下さい。

D Edit

なかなかに便利。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int sum(int [] arg ...)
{
  int result;
  foreach (int x; arg)
    result += x;
  return result;
}

void main(char[][] argv)
{
  printf("%d\n", sum(1, 2, 3, 4));

  static int[] array1 = [5, 6, 7, 8];
  printf("%d\n", sum(array1));

  int[] array2 = array1;
  printf("%d\n", sum(array2));
}

出力例

10
26
26

Delphi Edit

基本的に、可変長引数ができないが、
オープン配列使って代替っぽいのはできる。

あれ?
いつから、オープン配列引数に動的配列渡せるようになったんだ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
program main;

{$APPTYPE CONSOLE}
function Sum(arg: array of Integer): Integer;
var x: Integer;
begin
  Result := 0;
  for x in arg do
    Inc(Result, x);
end;

const
  Array1: array [0..3] of Integer = (5, 6, 7, 8);
var
  Array2: array of Integer;
  i: Integer;
begin
  Writeln(Sum([1, 2, 3, 4]));
  
  Writeln(Sum(Array1));

  SetLength(Array2, Length(Array1));
  for i := Low(Array1) to High(Array1) do 
    Array2[i] := Array1[i];
  Writeln(Sum(Array2));
end.

結果例

10
26
26

  • array of constなるものがあります。 -- YT? 2005-07-15 02:22:30 (金)
  • 型可変オープン配列パラメータですね。Dでは、型情報付き可変個引数関数に相当するかと -- TOBY 2005-07-15 13:27:11 (金)


Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New Pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2005-07-15 Fri 13:34:34 JST (4455d)