簡體   English   中英

無類 dart 文件的用途是什么?

[英]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確實導出了,例如ResponseClient

此處唯一的區別是,打算使用前綴導入的庫可以選擇為其頂級成員使用較短的名稱,而不會冒沖突或歧義的風險。 因為名稱將始終與前綴相鄰使用,所以前綴中的額外上下文不需要出現在從庫中導出的名稱中。

上面的post可能與其他名為post內容沖突,但http.post明確說明了我們正在談論的post類型。

Dart 允許您指定導入前綴在您的情況下它的as 使用as您為導入的庫或文件命名,然后使用該名稱訪問屬性。 通常這樣做是為了防止庫污染您的命名空間或使代碼可讀。

並且我們使用沒有類的 dart 文件主要用於聲明常量或 function 將在我們的代碼中重復,因此我們可以隨時訪問它而無需一遍又一遍地定義它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM