AGB  ·  Datenschutz  ·  Impressum  







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

TArray - Alternative zu SetLength(..) ?

Ein Thema von Der schöne Günther · begonnen am 24. Feb 2014 · letzter Beitrag vom 3. Mär 2020
 
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.045 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#19

AW: TArray - Alternative zu SetLength(..) ?

  Alt 26. Feb 2014, 12:13
Das mit der TList war ja nur ein Beispiel. Ein Array mit x Elementen wollte ich gerne haben um es irgendwo reinzustecken:

Delphi-Quellcode:
function gibArray<T>(const elementCount: Integer): TArray<T>;
begin
   SetLength(Result, elementCount);
end;
Meine Frage war einfach nur, ob es so etwas schon gibt.

Auf jeden Fall vielen Dank an alle beteiligten!
Du wirst ja irgendwas mit dem Ergebnis dieser Methode machen wollen, gell?
Zum Beispiel es einer Variable vom Typ TArray<T> zuweisen? Warum also nicht gleich SetLength(meinArray, 5) aufrufen?
Klar, das eine ist eine Funktion, die dir ein Array einer bestimmten Länge zurückliefert, was du rein theoretisch direkt an eine andere Methode übergeben kannst
(wobei ich hierbei den Nutzen davon bezweifeln möchte, ein Array mit x Einträgen, die aber nicht befüllt sind, zu übergeben).
Und das andere eine Methode mit einem var Parameter, der die Größe eines zuvor deklarierten dynamischen Arrays setzt.

Darum die konkrete Frage, wozu du so etwas haben möchtest.

Wie bereits gesagt, ich bezweifel den praktischen Nutzen, nur um es woanders hin übergeben zu können, wenn die Elemente ja alle "leer" (Default(T) ) sind.

Kannst du ein praktisches Beispiel benennen, wo man ein dynamisches Array mit einer bestimmten Größe aber leeren Einträgen irgendwo by Value (also nicht als var, denn das geht ja nicht mit einem Result einer Funktion) übergeben sollte?

P.S.
Bei diesem Code kräuseln sich mit die Fußnägel hoch:
Delphi-Quellcode:
var
  myBooleanList: IList<Boolean>;
begin
  myBooleanList := TCollections.CreateList<Boolean>(
    TArray<Boolean>.Create(False, False, False, False, False)
   );
end;
Besser:
Delphi-Quellcode:
var
  myBooleanList: IList<Boolean>;
begin
  myBooleanList := TCollections.CreateList<Boolean>([False, False, False, False, False]);
end;
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (26. Feb 2014 um 12:16 Uhr)
  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 08:21 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