【问题标题】:Delphi - How do I initialize a TArray of String?Delphi - 如何初始化字符串的 TArray?
【发布时间】:2016-05-31 19:03:43
【问题描述】:

我正在寻找一种更好的方法来初始化我的 lst_devices : TArray<String> 变量。

今天,我就是这样做的(这很丑陋,而且有代码味道,但至少可以正常工作)。

lst_devices_id := ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
        '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
        '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
        '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
        '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
        '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
        '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
        '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''];

我该如何改进它?

【问题讨论】:

    标签: android ios arrays string delphi


    【解决方案1】:

    字符串默认初始化为空字符串。所以你可以像这样依赖它:

    SetLength(lst_devices_id, N);
    

    在这里,您为数组分配所需数量的元素,并依靠编译器将它们默认初始化为空字符串。请注意,这依赖于先前未初始化的数组。如果不是这种情况,那么您必须先完成它。

    Finalize(lst_devices_id);
    SetLength(lst_devices_id, N);
    

    【讨论】:

    • 不是“lst_devices_id := nil;”比使用低级函数作为 Finalize 更优雅?
    • @ZENsan Finalize 是一个内在函数,它做同样的事情。从某种意义上说,它是一个高级功能,您应该从您的代码中使用它,并且它不仅适用于内部 RTL 代码。任君挑选。
    • 非常感谢您的解释。这就是为什么要求,让我清楚。
    • 谢谢大卫。我希望我可以为我以前从未听说过的Finalize 功能投票 +2 :)
    • 如果您愿意,我相信您可以找到我的其他有价值的答案! ;-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    • 2019-09-11
    • 2022-11-17
    • 2013-05-20
    • 2011-07-24
    • 2011-12-11
    相关资源
    最近更新 更多