2011-04-12 81 views
3

考慮以下幾點:類型轉換到動態數組

Type 
    TSomeTypeArray = array of SomeType; 

var 
    anArray: array of SomeType; 

function GetSomeTypeArray: TSomeTypeArray; 

我想寫anArray = GetSomeTypeArray();但是編譯器不喜歡它。 如果不更改anArray的類型或返回類型GetSomeTypeArray如何才能輸入TSomeTypeArrayarray of SomeType

回答

3

你不能。你需要聲明anArray,如TSomeTypeArray,那麼它應該工作。

或者,您可以將結果存儲到TSomeTypeArray類型的另一個數組,然後在anArray上調用SetLength至返回數組的長度。最後循環遍歷兩個數組,將anArray的元素設置爲返回數組的元素。

+0

不是問題的答案:P但由於 – Asher 2011-04-19 13:00:14

+0

呀,對不起。 AFAIK是唯一的方式,並且因爲沒有其他人選擇替代方案。 。 。 – 2011-04-20 21:04:00

4

你可以強制轉換的賦值的左邊:

我想
TSomeTypeArray(anArray) := GetSomeTypeArray(); 
+0

左手邊字符串< - 這讓我非常震驚 – user1249190 2014-11-25 04:51:03