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
Microbenchmarks are experiments
Dart Flutter Article

Microbenchmarks are experiments

Benchmarks are not just about numbersโ€”they are experiments that need interpretation. This post dissects a Dart vs JavaScript microbenchmark, illustrating why cool animations often mask the real value: insightful analysis. Numbers without context are just as meaningful as numerology
Vyacheslav Egorov 12 min read

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.