Dart Variables, Operators (Arithmetic, Logical, Relational), Writing Functions, and Lambdas are essential topics every mobile app developer must master to write clean and efficient code. Whether you’re working on Flutter apps or learning Dart for general programming, understanding how to declare variables, use operators, and write functions—including lambdas—is crucial to becoming productive with the language.
In this comprehensive guide, you’ll explore how Dart handles variables, the different types of operators you can use, and how to create and use functions effectively. We’ll also cover how lambdas simplify your code and why they matter in modern app development.
Dart Variables
Variables in Dart are used to store data that your application needs to perform operations. Dart supports both statically and dynamically typed variables, giving you flexibility based on your project’s requirements.
Types of Dart Variables
Type | Example | Description |
---|---|---|
var | var name = "Alex"; | Dart infers the type automatically |
String | String city = "NY"; | Used to store text |
int | int age = 25; | Used for whole numbers |
double | double price = 19.99; | Used for floating-point numbers |
bool | bool isLoggedIn = true; | Used for true/false values |
dynamic | dynamic x = "Hello"; | Can store any type and change later |
Key Points
- Dart is optionally typed. You can use
var
, or be explicit with types likeint
,String
. - Use
final
for values that won’t change after being set. - Use
const
for compile-time constants.
Example
final String appName = "MyApp";
const int year = 2025;
var userName = "John"; // inferred as String
Operators in Dart
Dart supports a rich set of operators for performing different kinds of operations. Let’s break them into three major types: Arithmetic, Logical, and Relational.
Arithmetic Operators
Arithmetic operators are used to perform basic mathematical operations such as addition, subtraction, multiplication, division, and modulus. These are especially useful in apps involving calculations like shopping carts, scores, payments, and more.
Operator | Symbol | Example | Result |
---|---|---|---|
Add | + | 5 + 3 | 8 |
Subtract | - | 5 - 3 | 2 |
Multiply | * | 5 * 3 | 15 |
Divide | / | 6 / 2 | 3.0 |
Modulo | % | 7 % 4 | 3 |
Integer Division | ~/ | 7 ~/ 4 | 1 |
Logical Operators
Logical operators are used to combine or invert boolean expressions. These are essential in scenarios like login checks, form validation, user status checking, etc.
Operator | Symbol | Example | Result |
---|---|---|---|
AND | && | true && false | false |
OR | ` | ` | |
NOT | ! | !true | false |
Relational Operators
Relational operators are used to compare two values, returning a boolean result (true or false). These are commonly used in conditions like age restrictions, price filtering, or eligibility checks in apps.
Operator | Symbol | Example | Result |
---|---|---|---|
Equal to | == | 5 == 5 | true |
Not equal | != | 5 != 3 | true |
Greater than | > | 5 > 3 | true |
Less than | < | 3 < 5 | true |
Greater or equal | >= | 5 >= 5 | true |
Less or equal | <= | 4 <= 5 | true |
Writing Functions in Dart
Functions are blocks of code that perform specific tasks. Dart allows for both named and anonymous functions, making it flexible for developers.
Defining a Function
int add(int a, int b) {
return a + b;
}
Function Without Return Type
void greetUser(String name) {
print("Hello, $name");
}
Function with Optional Parameters
void showDetails(String name, [int age = 0]) {
print("Name: $name, Age: $age");
}
Named Parameters
void createUser({required String name, int age = 18}) {
print("User: $name, Age: $age");
}
Highlights
- Dart supports both positional and named parameters.
- Use
required
to make named parameters mandatory. - Default values can be set for both optional and named parameters.
Lambdas in Dart
Lambdas or anonymous functions are functions without a name. They’re concise and ideal for short functions or callbacks.
Lambda Function Example
var multiply = (int a, int b) => a * b;
print(multiply(4, 5)); // Outputs: 20
Benefits of Using Lambdas
- Cleaner and more readable code.
- Useful in collections like
map
,forEach
, etc. - Ideal for callbacks and UI events in Flutter.
Real Use Case in Flutter
List<int> numbers = [1, 2, 3, 4];
numbers.forEach((num) => print(num * 2));
Dart Best Practices
- Use meaningful variable names.
- Prefer
const
andfinal
when applicable. - Avoid using
dynamic
unless necessary. - Keep functions short and focused on a single task.
- Use lambdas to simplify inline logic.
FAQ.
What are Dart Variables?
Dart Variables are named storage that holds data which can be changed during program execution. You can define them using var, final, const, or specific data types like int, String.
How many types of operators does Dart have?
Dart supports several types of operators, mainly Arithmetic, Logical, and Relational. Each serves different purposes such as calculations, comparisons, and boolean operations.
Why use functions in Dart?
Functions allow you to encapsulate reusable blocks of logic. Dart supports named, anonymous, optional, and named parameter functions, making it powerful and flexible.
What is a Lambda function in Dart?
A Lambda (anonymous function) is a shorthand way to write functions without a name. They are often used for short operations, callbacks, or inline logic.
Is it necessary to use const and final in Dart?
Yes, using const and final improves performance and helps ensure your variables aren’t accidentally modified, leading to cleaner and more reliable code.

I am working as a App Developer. When i was in college that time if i need to learn something new then i didn’t find the proper guidance from the internet. Well, i am very curious about learning new things. And yah it’s true most of my knowledge i got from the internet. That is why i was made this website to learn and get more knowledge about technology. The whole idea behind this website is to help people to improve their knowledge and skills.