Skip to main content

Variables and Data Types in Dart

Variables and Data Types in Dart

Understanding Variables and Data Types in Dart

Dart is a statically typed language that offers a wide range of features for defining variables and handling data types. This blog explores how to declare variables and utilize data types effectively for building robust applications.

Declaring Variables

Dart provides flexible ways to declare variables, catering to both inferred and explicitly defined types:

1. Using var

The var keyword allows the compiler to infer the type based on the assigned value.

var name = "Alice"; // String type inferred
var age = 25;      // int type inferred

2. Using final and const

Use final for variables whose values are set once and const for compile-time constants:

final country = "Canada";
const pi = 3.14;

3. Explicit Type Declaration

Explicitly define the type to ensure clarity and precision:

String city = "Paris";
int year = 2024;

Data Types in Dart

Dart supports various data types to handle different kinds of data:

a. Numbers

Dart provides two numeric types:

  • int: For integer values.
  • double: For floating-point numbers.
int age = 30;
double height = 5.9;

b. Strings

Strings are used to represent text:

String name = "John";
String greeting = "Hello, $name!"; // String interpolation

c. Booleans

Boolean values represent true or false:

bool isLoggedIn = true;

d. Collections

Dart supports several collection types:

  • Lists: Ordered collections.
  • List numbers = [1, 2, 3];
  • Sets: Unordered collections of unique items.
  • Set fruits = {"apple", "banana", "apple"};
  • Maps: Key-value pairs.
  • Map scores = {"Alice": 90, "Bob": 85};

e. Special Types

  • Runes: For Unicode characters.
  • Runes heart = Runes('\u2665');
  • Symbols: Used to refer to program identifiers.
  • Symbol sym = #example;

Null Safety in Dart

With null safety, variables in Dart are non-nullable by default. Use ? to allow null values:

String? nullableName;
nullableName = null; // Allowed

Dynamic and Object Types

For more flexibility:

  • dynamic: A variable can hold any type, but type checking is deferred until runtime.
  • dynamic variable = 5;
    variable = "Hello"; // Allowed
  • Object: Base type for all Dart objects.
  • Object obj = 5;
    obj = "World"; // Allowed

Type Conversion

Convert between types when needed:

  • String to int:
  • String str = "123";
    int num = int.parse(str);
  • Int to String:
  • int num = 123;
    String str = num.toString();

Conclusion

Understanding variables and data types is fundamental to writing efficient Dart code. By leveraging Dart's strong typing and null safety, developers can create robust and error-free applications. Master these concepts to unlock the full potential of Dart!

Explore more in the Dart Documentation.

Comments

Popular posts from this blog

API Integration in Flutter - A Step-by-Step Guide

API Integration in Flutter - A Step-by-Step Guide API Integration in Flutter - A Step-by-Step Guide Learn how to integrate APIs into your Flutter app with this easy-to-follow tutorial. Step 1: Add Dependencies Start by adding the necessary dependencies for HTTP requests and JSON handling in your pubspec.yaml file. dependencies: flutter: sdk: flutter http: ^0.13.3 Run flutter pub get to install the dependencies. Step 2: Create a Service Class for API Calls Next, create a Dart file (e.g., api_service.dart ) to handle your API logic. Below is an example of a simple GET request function: import 'dart:convert'; import 'package:http/http.dart' as http; class ApiService { final String baseUrl; ApiService({required this.baseUrl...

Flutter Interview Preparation Topics

Flutter Interview Preparation Flutter Interview Preparation 1. Core Flutter Concepts **Widgets**: - StatelessWidget vs. StatefulWidget. - InheritedWidget and InheritedModel. - Custom Widgets (Creating reusable components). **State Management**: - Provider, Riverpod, Bloc/Cubit, Redux, or GetX. - Compare and contrast state management approaches. - Handling global and local state. **Navigation and Routing**: - `Navigator 1.0` vs. `Navigator 2.0`. - Named routes and deep linking. - Implementing nested navigation. **Lifecycle**: - App lifecycle (`AppLifecycleState`). - Widget lifecycle (`initState`, `dispose`, etc.). 2. Advanced Flutter Development **Performance Optimization**: - Efficient...

How, Purpose, and When to Use Google ML Kit in Flutter

How, Purpose, and When to Use Google ML Kit in Flutter How, Purpose, and When to Use Google ML Kit in Flutter Purpose of Google ML Kit in Flutter Google ML Kit simplifies adding AI features to mobile applications. Its primary purposes include: On-Device Machine Learning: Perform AI tasks without requiring an internet connection, ensuring low latency, privacy, and faster processing. Pre-trained Models: Use Google's robust, pre-trained models without needing ML expertise. Versatile AI Features: Enable functionalities like: Text recognition Barcode scanning Image labeling Face detection Pose detection Language identification Translation Entity extraction Smart replies When to Use Google ML Kit You should use Google ML Kit when: You need pre-built AI features withou...