[英]What is the purpose of a classless dart file?
我想知道為什么.dart
文件沒有類。 它有什么優勢嗎?
例如:
import 'package:http/http.dart' as http;
你必須用“as”來引用它,然后你可以像這樣使用它:
response = await http
.post(
url,
headers: header,
body: dataToSend,
)
請考慮將我視為基本的 flutter 開發人員,答案可能在網站上。
Dart 庫可以包含類和其他頂級聲明,這與 Java 不同,其中類是唯一允許的頂級聲明,所有其他聲明都在類中。
碰巧只導出非類聲明的庫並沒有什么神奇之處。 它只是一個圖書館。 您不必導入帶有前綴的此類庫(如as http
),您也可以直接導入它,然后您可以引用不帶前綴的導入名稱:
import "package:http/http.dart";
...
response = await post(url, headers: headers, body: dataToSend);
同樣,帶有類的庫也可以使用前綴導入:
import "dart:convert" as convert;
...
Uint8List utf8 = ...;
String result = convert.utf8.decode(utf8);
這使您可以避免名稱沖突,例如此處的utf8
名稱。 事實上, package:http/http.dart
庫確實導出了類,例如Response
或Client
。
此處唯一的區別是,打算使用前綴導入的庫可以選擇為其頂級成員使用較短的名稱,而不會冒沖突或歧義的風險。 因為名稱將始終與前綴相鄰使用,所以前綴中的額外上下文不需要出現在從庫中導出的名稱中。
上面的post
可能與其他名為post
內容沖突,但http.post
明確說明了我們正在談論的post
類型。
Dart 允許您指定導入前綴在您的情況下它的as
。 使用as
您為導入的庫或文件命名,然后使用該名稱訪問屬性。 通常這樣做是為了防止庫污染您的命名空間或使代碼可讀。
並且我們使用沒有類的 dart 文件主要用於聲明常量或 function 將在我們的代碼中重復,因此我們可以隨時訪問它而無需一遍又一遍地定義它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.