Optional Positional Parameters
Part of the Fundamentals section of Coddy's Dart journey — lesson 72 of 94.
Optional positional parameters in Dart allow you to create functions where some parameters are optional. You define them by placing parameters inside square brackets [].
Create a function with optional positional parameters:
void greet(String name, [String? greeting]) {
if (greeting != null) {
print('$greeting, $name!');
} else {
print('Hello, $name!');
}
}
void main() {
greet('Dart');
greet('Dart', 'Welcome');
}After executing the above code, the output will be:
Hello, Dart!
Welcome, Dart!You can have multiple optional parameters:
int calculateTotal(int quantity, [int price = 10, int tax = 2]) {
return quantity * price + tax;
}
void main() {
print(calculateTotal(5));
print(calculateTotal(5, 20));
print(calculateTotal(5, 20, 5));
}After executing the above code, the output will be:
52
102
105Challenge
BeginnerIn this challenge, you'll practice using optional positional parameters in Dart functions. Optional positional parameters allow you to create functions where some parameters are optional.
Complete the greet function below that takes a required name parameter and an optional title parameter. If the title is provided, the function should return a greeting with both the title and name. If no title is provided, it should just use the name.
Expected output:
Hello, John!
Hello, Dr. Smith!Cheat sheet
Optional positional parameters in Dart are defined by placing parameters inside square brackets []:
void greet(String name, [String greeting]) {
if (greeting != null) {
print('$greeting, $name!');
} else {
print('Hello, $name!');
}
}You can have multiple optional parameters with default values:
int calculateTotal(int quantity, [int price = 10, int tax = 2]) {
return quantity * price + tax;
}Call functions with optional parameters by providing only the required arguments or including optional ones:
greet('Dart'); // Uses default behavior
greet('Dart', 'Welcome'); // Uses provided optional parameterTry it yourself
void main() {
// These variables are already defined for you
String person1 = "John";
String person2 = "Smith";
String title = "Dr.";
// Call the greet function with just the name
print(greet(person1));
// Call the greet function with both name and title
print(greet(person2, title));
}
// TODO: Complete the greet function with an optional title parameter
// The title parameter should be optional (use square brackets [])
String greet(String name) {
// If title is provided, return "Hello, {title} {name}!"
// If title is not provided, return "Hello, {name}!"
}
This lesson includes a short quiz. Start the lesson to answer it and track your progress.
All lessons in Fundamentals
4Operators Part 2
Comparison OperatorsLogical ANDLogical ORLogical NOTType Test OperatorsRecap - Making Comparisons7Working with Strings
String ConcatenationString InterpolationMulti-line StringsString PropertiesBasic String Methods10Collections - Maps Basics
What are Maps?Creating a MapAccessing Values by KeyKey-Value PairsGetting Map SizeGetting KeysGetting ValuesChecking if a Key Exists13Null Safety In Depth
Understanding NullNullable TypesNon-Nullable TypesNull Assertion OperatorLate InitializationRecap - Handling Null Safely16Fundamentals Challenges
Challenge: List of calculationChallenge: Sum of numbersChallenge: Find product2Variables and Basic Data Types
What are Variables?StringsIntegers (int)Doubles (double)Booleans (bool)Type Inference with 'var'Final VariablesConstant VariablesNaming ConventionsBasic Null SafetyRecap - Declaring Variables8Control Flow - Loops
The 'for' LoopThe 'while' LoopThe 'do-while' LoopUsing 'break' in LoopsUsing 'continue' in LoopsRecap - Repeating Code3Operators Part 1
Arithmetic OperatorsInteger DivisionModulo OperatorIncrement and DecrementAssignment ShortcutsRecap - Simple Calculations6Control Flow - Decision Making
The 'if' StatementThe 'else' StatementThe 'else if' StatementRecap - Simple DecisionsNested 'if' StatementsThe 'switch' Statement9Collections - Lists Basics
What are Lists?Creating a ListAccessing by IndexGetting List LengthAdding ElementsRemoving ElementsChecking if a List is EmptyIterating Over a List12Functions Advanced
Optional Positional ParametersNamed ParametersRequired Named ParametersDefault Parameter ValuesRecap - Function Parameters15Project: Simple Calculator
Setting UpDeclaring Number