Functions help you organize your code into small reusable pieces. Arrow syntax is a short way to write simple functions.
Functions and arrow syntax in Flutter
ReturnType functionName(ParameterType parameter) {
// code block
return value;
}
// Arrow syntax for single expression functions
ReturnType functionName(ParameterType parameter) => expression;The arrow syntax is used only for functions with a single expression.
Arrow syntax automatically returns the value of the expression.
int add(int a, int b) { return a + b; }
int add(int a, int b) => a + b;
void printHello() => print('Hello!');
This Flutter app shows two texts. One uses a normal function to multiply numbers. The other uses arrow syntax to greet a person.
import 'package:flutter/material.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); // Function using normal syntax int multiply(int x, int y) { return x * y; } // Function using arrow syntax String greet(String name) => 'Hello, $name!'; @override Widget build(BuildContext context) { int result = multiply(4, 5); String message = greet('Alice'); return MaterialApp( home: Scaffold( appBar: AppBar(title: const Text('Functions and Arrow Syntax')), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Text('4 x 5 = $result'), Text(message), ], ), ), ), ); } }
Use arrow syntax only for simple functions with one expression.
Functions help keep your code organized and easy to understand.
In Flutter, functions are often used inside widgets to build UI or handle events.
Functions let you reuse code by grouping instructions.
Arrow syntax is a shortcut for functions with a single return expression.
Use functions to make your Flutter apps cleaner and easier to maintain.
Practice
=> in a Flutter function do?Solution
Step 1: Understand arrow syntax meaning
The arrow=>is a shortcut for functions that return a single expression.Step 2: Compare with normal function
Instead of writing curly braces and return, arrow syntax returns the expression directly.Final Answer:
It creates a function that returns the expression after the arrow. -> Option CQuick Check:
Arrow syntax = single expression return [OK]
- Thinking arrow means no return value
- Confusing arrow with async keyword
- Assuming arrow marks function private
a and b?Solution
Step 1: Check arrow function syntax
Arrow functions use=>followed by an expression without braces or return keyword.Step 2: Validate each option
int sum(int a, int b) => a + b; correctly uses arrow syntax with expressiona + b. The other options misuse braces or return keyword.Final Answer:
int sum(int a, int b) => a + b; -> Option AQuick Check:
Arrow function = expression after => without braces [OK]
- Adding braces {} with arrow syntax
- Using return keyword after arrow
- Missing semicolon at end
int multiply(int x, int y) => x * y;
void main() {
print(multiply(3, 4));
}Solution
Step 1: Understand the multiply function
The function returns the product ofxandyusing arrow syntax.Step 2: Calculate multiply(3, 4)
3 * 4 equals 12, so the print statement outputs 12.Final Answer:
12 -> Option DQuick Check:
3 * 4 = 12 [OK]
- Adding numbers instead of multiplying
- Confusing output as string concatenation
- Thinking arrow syntax causes error
int add(int a, int b) => {
return a + b;
};Solution
Step 1: Check arrow function syntax rules
Arrow syntax functions must have a single expression without braces or return keyword.Step 2: Analyze the given code
The code uses braces and return inside an arrow function, which is invalid syntax.Final Answer:
Arrow functions cannot have braces and return statements. -> Option BQuick Check:
Arrow syntax = single expression, no braces [OK]
- Adding braces {} in arrow functions
- Using return keyword after arrow
- Thinking arrow requires async keyword
Solution
Step 1: Use arrow syntax with conditional expression
Arrow functions can return a single expression, here a ternary operator checks if string is not empty.Step 2: Validate each option
int lengthOrZero(String s) => s.isNotEmpty ? s.length : 0; correctly uses ternary withs.isNotEmpty. int lengthOrZero(String s) => if (s.isNotEmpty) s.length else 0; uses invalid if-else syntax. int lengthOrZero(String s) => { return s.length; }; uses braces and return which is invalid for arrow. int lengthOrZero(String s) => s.length > 0; returns a boolean instead of int.Final Answer:
int lengthOrZero(String s) => s.isNotEmpty ? s.length : 0; -> Option AQuick Check:
Arrow + ternary = conditional return [OK]
- Using if-else instead of ternary in arrow
- Adding braces and return in arrow function
- Returning boolean (length > 0) instead of int
Ready to prove it?
Pass the test and this pattern moves unknown
