AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Goto

Ein Thema von MasterTobi · begonnen am 22. Aug 2007 · letzter Beitrag vom 23. Aug 2007
 
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#24

Re: Goto

  Alt 22. Aug 2007, 22:06
Zitat von scrat1979:
Wie um himmels willen findet man auf die schnelle solche Cartoons zu einem x-beliebigen Thema?!?
Wer xkcd kennt, kennt für jedes Thema einen Comic. Sei es über Informatik, Mathematik oder Velociraptoren .

Hier noch die Delphi-Umsetzung von Elvis' Beispiel:
Delphi-Quellcode:
type
  TForLoopEnumerator = class // *hust* Interfaces? *hust*
    fTo, fCurrent: Integer;
  public
    constructor Create(aFrom, aTo: Integer);
    function MoveNext: Boolean;
    property Current: Integer read fCurrent;
  end;

  TForLoop = class
    fFrom, fTo: Integer;
    public
    function GetEnumerator: TForLoopEnumerator;
    property From: Integer read fFrom write fFrom;
    property &To: Integer read fTo write fTo;
  end;

{ TForLoopEnumerator }

constructor TForLoopEnumerator.Create(aFrom, aTo: Integer);
begin
  fCurrent := aFrom - Sign(aTo - aFrom); // MoveNext wird bereits vor dem ersten
  // Schleifendurchgang aufgerufen, also musse fCurrent künstlich einen Schritt
  // zurückgesetzt werden
  fTo := aTo;
end;

function TForLoopEnumerator.MoveNext: Boolean;
begin
  Result := fCurrent <> fTo;
  Inc(fCurrent, Sign(fTo - fCurrent));
end;

{ TForLoop }

function TForLoop.GetEnumerator: TForLoopEnumerator;
begin
  Result := TForLoopEnumerator.Create(From, &To);
end;

var
  i: Integer;
  loop: TForLoop;
begin
  loop := TForLoop.Create;
  loop.From := 10;
  loop.&To := -1;

  for i in loop do
    Writeln(i);

  Readln;
end.
Die marginal vergrößerte Codelänge kann angesichts der Tatsache, dass dieser Iterator in beide Richtungen funktioniert, wohl vernachlässigt werden .

Zitat von Pelvis:
Iterator (oder Enumerator in MS-speak)
Hejlsberg hat wohl nur auf einem Ohr zugehört, als die Namen jener beiden Interfaces so und nicht anders festgelegt wurden - und dann kommt RemObjects daher und führt auch noch eine dritte Bezeichnung ein .

[edit]Einmal Editieren ist dem Cache wohl zu wenig .[/edit]
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz