我曾在多次读取的回答这个有关的问题TArray<T>和array of T.根据我的理解,第一个的使用比后者更通用,因为对于动态数组我应该声明类似......
type
TMyFlexibleArray = array of Integer;
Run Code Online (Sandbox Code Playgroud)
......这是必要的(在某些情况下)因为我无法返回array of Integer例如.相反,当然,我可以返回泛型类型.动态数组没有固定长度,并且使用SetLength过程重新分配它们的内存.TArray是一个静态方法的泛型类; 有关它的文档说明:
您不应该创建此类的实例,因为它的唯一目的是提供排序和搜索静态方法.
它们具有两种不同的性质/功能,但是它们具有相同的结果(例如,当作为参数传递时或者当我只需要一个灵活的容器时)?我看到TArray也有一些有用的方法.
如果我说这TArray<T>是一个用泛型构建的动态数组并且type K = array of T是一个自己的动态数组(自定义数组),那是正确的吗?在我的问题中,我假设它们在作为动态数组的功能上是等价的(我更喜欢通用的方式只是为了舒适).
通用动态数组和非通用动态数组在各方面都是相同的,除了它们的通用性或其他性质.这是唯一的区别.
这种差异推动了少数情况下的决策制定,其中一个可以使用,而另一个则不能.例如:
如果这看起来很明显,那是因为它是.通用和非通用数组之间确实只有这一个区别.
你还别说类TArray的System.Generics.Collections.这是一个静态类,包含搜索和排序数组的方法.它与任何动态数组类型完全不同,并且在这里分散注意力.虽然名字相近,TArray<T>而且TArray这些是完全不同的事情.忽略TArray这个问题的目的.