我正在嘗試遵循簡單的代碼,其中在 main 中創建 HashTable 并將其發送到另一個函式。將創建和列印所有鍵的串列:
public static void hashtable2list(HashTable sht){
List lst = new List<string>();
sht.foreach( (key, value) => { lst.append(key); } );
lst.foreach((entry) => {print("%s\n", (string)entry);});
return;
}
public static void main(){
HashTable <string, int> ht = new HashTable <string, int> (direct_hash, direct_equal);
ht.insert("one", 1);
ht.insert("two", 2);
ht.insert("three", 3);
hashtable2list(ht);
return;
}
但是,當我嘗試在上面進行編譯時,出現以下錯誤,該錯誤發生在將專案附加到串列的位置:
$ valac mySegFaultAnother.vala
rnSegFaultAnother.vala:5.33-5.35: error: missing generic type arguments
sht.foreach( (key, value) => { lst.append(key); } );
^^^
Compilation failed: 1 error(s), 0 warning(s)
問題出在哪里,如何解決?
uj5u.com熱心網友回復:
因為您已經創建了 HashTable<string, int> ,但是 hashtable2list 只接受 HashTable - 即它不知道 HashTable 有哪些專門化型別,因此它無法正確編譯。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/510452.html
標籤:仿制药类型瓦拉
