以下示例(1)讀取文件並打印內容,而不顯式地將文件內容分配給變量(即「.then(stdout.write)」)。但是,如果我想要做的不僅僅是打印內容(2),我需要將內容分配給一個變量(我認爲)。使用readAsString()讀取文本文件並使用結果
是否有可能實現(打印內容和做更多),而不分配文件的文本到變量?
在第一個示例中,是否創建了一個隱式變量?或者換一種說法,example1通過不創建顯式變量來使用更少的資源?
//Example 1:
import 'dart:io';
void main() {
new File(new Options().script)
.readAsString(encoding: Encoding.ASCII)
.then(stdout.write)
.catchError((oError) => print(oError));
print("Reading file ...\n");
}
//Example 2:
import 'dart:io';
void main() {
new File(new Options().script)
.readAsString(encoding: Encoding.ASCII)
.then((String sText) {
stdout.write(sText+"\n\n");
print ('Completed');
})
.catchError((oError) => print(oError));
print("Reading file ...\n");
}
您可以通過刪除catchError的方法級聯來簡化代碼。一般而言,鏈接來自Future的調用以確保Future的結果和/或錯誤正確傳播。我會更新你的代碼。 – 2013-05-14 05:33:46
謝謝,我會再看看它。 – 2013-05-14 15:31:44