簡體   English   中英

Dart 中的 class 名稱開頭的美元符號 $ 是什么意思?

[英]What does dollar sign $ mean at the beginning of the class name in Dart?

在生成的類中可以經常觀察到美元符號。 類型也以$符號開頭。 我知道 Dart 語言允許 class 名稱包含美元符號,但也許它有一個我不知道的隱藏含義? 我在 stackoverflow 上發現了類似的問題,但它在 2012 年被問到,答案不再有效。

示例 1。

class Counter {
      int _counter = 0;
      int next() => ++_counter;
    }
    class Operation {
      void operate(int step) { doSomething(); }
    }


    class $OperationWithCounter = Operation with Counter;

    class Foo extends $OperationWithCounter{
      void operate([int step]) {
    super.operate(step ?? super.next());
    }

Dart 標識符可以包含$ 它只是該語言的另一個字母,但傳統上它是為生成的代碼保留的。 這允許代碼生成器(在很大程度上)避免擔心命名沖突,只要他們在他們創建的名稱中放置一個$

這種特殊情況下,名稱只是用來表示原始程序中沒有出現的合成名稱。 它是由您找到它的地方描述的脫糖“生成”的。

暫無
暫無

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

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