Dart Symbol

In this tutorial you will learn about the Dart Symbol and its application with practical example.

Dart Symbol

Dart Symbol object used to refer an operator or identifier declared in a Dart program. Dart symbol are commonly used in APIs that refer to identifiers by name, because an identifier name can changes but not identifier symbols.

Dart symbols are opaque, dynamic string name used in reflecting out metadata from a library. Symbols is basically means to save the relationship between a human readable string and a string that is optimized to be used by computers.

Reflection is a mechanism that used to get metadata of a type at run-time for example – the number of methods in a class, the number of constructors it has or the number of parameters in a function.

In Dart, all of the reflection related classes are available in the dart:mirrors package. This library can be used with web applications as well as command line applications.

Syntax:-

Symbol for an identifier can be created using a hash (#) followed by the identifier name.

Here, the name must be a valid class, function, public member name, public constructor name, or library name.

Example:-

Lets create a file Foo.dart and put the following code in it –

Foo.dart

Here, we have declared a class Foo in a library foo_lib, and defined three methods m1, m2, and m3 in class Foo.

Now, create another dart file FooSymbol.dart and put the following code in it –

FooSymbol.dart

In the above code we are loading Foo.dart library along with the dart:mirrors library because we will be reflecting the metadata from the above library. In the above code we are basically searching for the Foo class in foo_lib using Symbol.

The following line of code iterate through every declaration in the library at runtime and prints the declarations as type of Symbol.

When we run the above Dart Program, we will see the following output –

Output:-

Display Number of Instance Methods In a Class

Example:-

Output:-

Dart Convert Symbol to String

The MirrorSystem class available in dart:mirrors library allow us to convert a Symbol back to string.

Example:-

Output:-

In this tutorial we have learn about the Dart Symbol and its application with practical example. I hope you will like this tutorial.