0
Vala是否支持Self Invoking?無論是用課堂還是用方法?Vala是否支持自我調用?
JavaScript支持自我調用如下。這是我正在尋找的。
(function(){
// some code…
})();
我試圖加載一個類到一個哈希映射動態加載。
Vala是否支持Self Invoking?無論是用課堂還是用方法?Vala是否支持自我調用?
JavaScript支持自我調用如下。這是我正在尋找的。
(function(){
// some code…
})();
我試圖加載一個類到一個哈希映射動態加載。
using Gee;
[CCode (has_target = false)]
delegate void MyDelegate();
int main() {
var map = new HashMap<string, MyDelegate>();
map["one"] =() => { stdout.printf("1\n"); };
map["two"] =() => { stdout.printf("2\n"); };
MyDelegate d = map["two"];
d();
return 0;
}
如果您需要在您委託的目標,你必須寫一個包裝,看到了這個問題: Gee HashMap containing methods as values
正如你所看到的,你不需要自我invokation。自我調用看起來是這樣的:
int main() {
(() => { stdout.printf("Hello world!\n"); })();
return 0;
}
這不支持Vala(我測試這與valac-0.22)。
調用一個委託VAR按預期工作:
delegate void MyDelegate();
int main() {
MyDelegate d =() => { stdout.printf("Hello world!\n"); };
d();
return 0;
}
瓦拉有代表和關閉。您可以將匿名函數存儲在委託中,並稍後調用該委託。您可以將代表存儲在散列映射中。這有幫助嗎? 「動態加載」是什麼意思? –
動態加載含義將其存儲在散列表中,以便稍後通過它的事件名稱進行調用。 我基本上在尋找一個類,它自動將自己添加到散列表而不被調用。 –