通過(guò)實(shí)現(xiàn)類(lèi)的 call() 方法, 能夠讓類(lèi)像函數(shù)一樣被調(diào)用。
在下面的示例中,WannabeFunction 類(lèi)定義了一個(gè) call() 函數(shù), 函數(shù)接受三個(gè)字符串參數(shù),函數(shù)體將三個(gè)字符串拼接,字符串間用空格分割,并在結(jié)尾附加了一個(gè)感嘆號(hào)。
class WannabeFunction {
call(String a, String b, String c) => '$a $b $c!';
}
main() {
var wf = new WannabeFunction();
var out = wf("Hi","there,","gang");
print('$out');
}
有關(guān)把類(lèi)當(dāng)做方法使用的更多信息,請(qǐng)參考 Emulating Functions in Dart 。
大多數(shù)計(jì)算機(jī)中,甚至在移動(dòng)平臺(tái)上,都在使用多核CPU。 為了有效利用多核性能,開(kāi)發(fā)者一般使用共享內(nèi)存數(shù)據(jù)來(lái)保證多線程的正確執(zhí)行。 然而, 多線程共享數(shù)據(jù)通常會(huì)導(dǎo)致很多潛在的問(wèn)題,并導(dǎo)致代碼運(yùn)行出錯(cuò)。
所有 Dart 代碼都在隔離區(qū)( isolates )內(nèi)運(yùn)行,而不是線程。 每個(gè)隔離區(qū)都有自己的內(nèi)存堆,確保每個(gè)隔離區(qū)的狀態(tài)都不會(huì)被其他隔離區(qū)訪問(wèn)。
更多建議: