Dart Flutter Tips

Why I Write Dollar Signs in Code

Typically use dollar signs in my code for three main purposes...
Plague Fox 1 min read
Why I Write Dollar Signs in Code
Photo by Alexander Grey / Unsplash

As a Separator and for Hierarchy

For example, it helps in distinguishing and organizing code in a clear hierarchy:

YourScreen
YourScreen$Form
_YourScreen$Form$Buttons

This notation is both convenient and understandable, allowing for quick selection of a name part with a double mouse click.

Additionally, for unions and sealed classes:

sealed class Base {}
base mixin M on Base {}
final class Base$A = Base with M; 
final class Base$B = Base with M; 
final class Base$C = Base with M; 
final class Base$D = Base with M; 

To Indicate Auxiliary or Private Use

When used at the beginning of a name, it signifies that the variable is auxiliary and typically not meant for public use. Moreover, unless marked private, it tends to be less prominent in IDE tooltips:

$someVar
_$someVar

For instance, I frequently use such variables for caching:

T? _$a;
T get a => _$a ??= _init();

Future<T>? _$fn;
Future<T> fn() => _$fn ??= Future(() {});

AsyncCache<T> _$cache;

This approach is also handy for using functions with conditional imports, especially when needing to differentiate imports by VM and JS environments.

For Code Generation and When Using an Analyzer

The use of dollar signs is highly situational here, particularly beneficial for code generation and when analyzing source code with an analyzer. This method allows for a more nuanced and flexible approach to code structure and organization, adapting to various programming needs.

Share
Comments
More from Plague Fox
Linter, Analyzer & Dart Code Metrics
Dart Flutter Podcast Russian

Linter, Analyzer & Dart Code Metrics

Join us in this stream where we will take a detailed look at Dart and Flutter tools such as linter, analyzer, and Dart Code Metrics. We will discuss how these tools help improve code quality and enhance its readability, as well as how they can make your development more efficient.
Plague Fox

Plague Fox

Engineer by day, fox by night. Talks about Flutter & Dart.

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to Plague Fox.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.