簡體   English   中英

美元符號放在 Flutter 中的類調用之前是什么意思?

[英]What does the dollar sign mean when put before a class call in Flutter?

我是 Flutter/Dart 的初學者,我一直看到在調用類或方法之前出現美元符號,示例如下(在Floor包文檔中找到):

 final database = await $FloorAppDatabase.databaseBuilder('app_database.db').build();

我已經搜索了很多,我能找到的 Dart 中美元符號的唯一含義是用於字符串插值,但情況似乎並非如此。

這不是 Flutter 或 Dart 約定——至少不是官方約定官方 Dart 命名約定文檔(截至 2020 年 10 月)沒有提到在標識符名稱中使用$

但是,我確實知道其他編程語言的生態系統確實使用美元符號 ( Sigil ),而且我認為這種習慣是由您鏈接到的floor數據庫的作者繼承的。 更具體地說, 在 Java 中,通常為由工具生成的類型名稱使用$前綴而不是手寫(例如 ORM 實體類型),並且在 JavaScript 中使用 RxJS observables 的人將使用$作為變量-名稱后綴

由於$FloorDatabase是一個類型名,而不是一個變量或成員名,我將假設它是從 Java 中$FloorDatabase的一個習慣:

Java: $字符應該只用在機械生成的源代碼中,或者很少用於訪問遺留系統上預先存在的名稱。

因此,在這種情況下,您鏈接到的文檔中有一個線索

使用生成的代碼。 要獲取數據庫實例,請使用生成的$FloorAppDatabase該類允許訪問數據庫構建器

所以這就是我的結論:它不是 Dart/Flutter 中的官方命名約定,而是 Java 中的命名約定,而且floor的作者似乎是從 Java 繼承而來的。

(我個人希望他們沒有,因為它不是一個特別有用的指標——如果一個類型是創建一個工具而不是手寫的,這對消費應用程序有什么影響?)

暫無
暫無

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

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