![]() |
Delphi-Version: 11 Alexandria
String zu TStringDynArray hinzufügen?
Ich erzeuge ein System.Types.TStringDynArray mit
Delphi-Quellcode:
.
System.IOUtils.TDirectory.GetFiles
Was ist die einfachste/schnellste Methode, um einen string zum TStringDynArray hinzuzufügen? |
AW: String zu TStringDynArray hinzufügen?
ungetestet: strarray := strarray + ['bla'];
|
AW: String zu TStringDynArray hinzufügen?
Zitat:
|
AW: String zu TStringDynArray hinzufügen?
Jupp, die neuen string-like Array-Operatoren wurden vor ein paar Delphi-Versionen als großes Feature beworben.
Und dann funktioniert natürlich auch Insert und Delete bei Arrays. Leider noch etwas unintelligent. Wäre nett, wenn es noch erweitert wird, dass bei einem einzelnem Wert implizit auch funktioniert, also
Delphi-Quellcode:
strarray := strarray + 'bla';
Und vieleicht gibt es irgendwann (nächstes Jahrtausend) auch mal die Kurzoperatoren, ala
Delphi-Quellcode:
bzw.
strarray += ['bla'];
Delphi-Quellcode:
.
strarray += 'bla';
(rein von der pascal-syntax her, wäre es ohne Probleme möglich, da es mit keinen bestehenden Regeln kollidiert) |
AW: String zu TStringDynArray hinzufügen?
Zitat:
|
AW: String zu TStringDynArray hinzufügen?
Es ist doch dennoch typsicher?
['xxx'] ist eine Menge von dem Typ 'xxx' ist nur Einer dieses Typs Wenn ich nur Einwas anhängen will, dann passt es ja prinzipiell dennoch. Es ist ja nicht so, dass Delphi uns die Arbeit sonst nicht auch oft erleichtert, indem Dinge implizit gemacht werden, weil wir zu schreibfaul sind. |
AW: String zu TStringDynArray hinzufügen?
Naja, aber x += 'x' wäre eine Zuweisung in etwas vorhandenes (die ohne array index nicht funktioniert) wohingegen x += ['x'] garantiert ein element ist.
So wäre jedenfalls meine Denkweise. |
AW: String zu TStringDynArray hinzufügen?
Der Unterschied wäre doch eher
Code:
und
TArray<TBla> += TBla
Code:
In beiden Fällen muss der Compiler nur sicherstellen, dass der Typ TBla passt.
TArray<TBla> += TArray<TBla>
|
AW: String zu TStringDynArray hinzufügen?
jupp.
Im Prinzip ist die Sache ganz einfach. @Compiler: Wenn es nicht passt, dann denk dir implizit noch ein paar Klammern drum, und wenn es dann passt, isses OK ... ansonsten meckere doch noch Genauso ist es bei expliziten Namespaces, an Stellen, wo schon vorher definitiv fest steht, dass nur ein bestimmter Namespace dort gültig ist, z.B. bei Übergabe an Variablen, Property oder als Funktionsparameter. |
AW: String zu TStringDynArray hinzufügen?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:13 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