假設我有一個GLib.Array<Item?>
並想將其轉換爲Item[]
,那麼我會如何在Vala中做到這一點?將GLib.Array轉換爲內置陣列
0
A
回答
0
一個天真的方法是,你用index()
方法從數組中取出所有項目,並使用+=
將它們追加到空的Item[]
數組中。
一個簡單的例子程序:
public int main (string[] args) {
Array<string> array = new Array<string>();
array.append_val ("1. entry");
array.append_val ("2. entry");
string[] builtin = {};
for (var i = 0; i < array.length; i++) {
builtin += array.index (i);
}
return 0;
}
更新:GLib.GenericArray
真的似乎是一個更好的解決方案。至於data
屬性:在GenericArray
它記錄在Valadoc,在Array
它不是(這並不意味着它沒有工作,但我沒有嘗試過)。
3
首先,除非您需要與現有代碼進行互操作,否則請勿使用GLib.Array
。使用GLib.GenericArray
,這是更容易正確使用,更難以正確使用。
GLib.Array.data
是一個常規數組(Item?[]
在你的情況),因爲是GLib.GenericArray.data
,所以你可以使用它。如果你將它分配給一個擁有的變量,Vala將複製一份。
相關問題
- 1. 將矩陣轉換爲列
- 2. 將列轉換爲矩陣
- 3. 將矩陣轉換爲1維陣列
- 4. 將陣列轉換爲指標矩陣
- 5. 將陣列數組轉換爲矩陣
- 6. 將PowerShell陣列一般轉置爲列
- 7. 如何在陣列內轉置陣列
- 8. 將散列陣列轉換爲散列陣列
- 9. 將轉換矩陣轉換爲列表列表
- 10. 將4D陣列轉換爲圖像
- 11. 將3D陣列轉換爲3D模型
- 12. 將兩個列表轉換爲矩陣
- 13. 將表格列表轉換爲矩陣
- 14. 將平面陣列轉換爲多維
- 15. 將字符串轉換爲int陣列
- 16. sqlite3將數據轉換爲短陣列
- 17. 將陣列轉換爲正常顯示?
- 18. 將陣列轉換爲圖像
- 19. 將HTMLCollection轉換爲ID陣列
- 20. 將列表轉換爲稀疏矩陣
- 21. 將Nsmutable陣列轉換爲Mkannotation數組
- 22. 將列表轉換爲numpy矩陣
- 23. 將陣列轉換爲Netezza中的行
- 24. 將Linux C Char陣列轉換爲Int
- 25. 將陣列轉換爲對象
- 26. 將嵌套列表轉換爲矩陣
- 27. 將矩陣列表轉換爲向量
- 28. 將Ember-Data模型轉換爲陣列
- 29. Ruby將陣列轉換爲Fixnum
- 30. 如何將列表轉換爲矩陣?
GLib.Array.data是相當新的(目前僅在開發版本中可用,它將變爲0.26),但它的工作原理。 – nemequ