What if you could tell your program exactly what to do each time without rewriting everything?
Why Function parameters in Rust? - Purpose & Use Cases
Imagine you want to bake cookies and need to tell your friend exactly how much flour, sugar, and butter to use each time. Without a clear way to pass these instructions, your friend might get confused or forget some ingredients.
Manually repeating the same instructions for every cookie batch is tiring and easy to mess up. You might forget an ingredient or mix up amounts, leading to inconsistent cookies and wasted ingredients.
Function parameters let you package all the needed details into one clear message. You just tell the function what ingredients to use, and it handles the rest, making your cookie batches consistent and your instructions simple.
fn bake_cookie() {
println!("Use 2 cups flour, 1 cup sugar, 0.5 cup butter");
}
bake_cookie();
bake_cookie();fn bake_cookie(flour: f32, sugar: f32, butter: f32) {
println!("Use {} cups flour, {} cups sugar, {} cups butter", flour, sugar, butter);
}
bake_cookie(2.0, 1.0, 0.5);
bake_cookie(3.0, 1.5, 0.7);Function parameters let you reuse code easily with different inputs, making your programs flexible and powerful.
Think of a coffee machine where you can choose how strong or sweet you want your coffee each time. Function parameters are like those choices you make before the machine starts brewing.
Function parameters let you send information into functions.
This avoids repeating code and reduces mistakes.
They make your programs flexible and easier to manage.
Practice
Solution
Step 1: Understand what parameters do
Parameters allow functions to receive input data when called.Step 2: Identify the correct purpose
Sending data into functions makes them flexible and reusable.Final Answer:
To send data into functions so they can use it -> Option AQuick Check:
Function parameters = input data [OK]
- Confusing parameters with return types
- Thinking parameters declare variables inside functions
- Mixing parameters with control flow like loops
num of type i32 in Rust?Solution
Step 1: Recall Rust function parameter syntax
Parameters are declared asname: type, e.g.,num: i32.Step 2: Check each option
fn example(num: i32) {} matches correct syntax. fn example(i32 num) {} reverses order. fn example(num) -> i32 {} misses type. fn example(num: int) {} uses wrong type name.Final Answer:
fn example(num: i32) {} -> Option CQuick Check:
Parameter syntax = name: type [OK]
- Swapping type and name order
- Omitting the parameter type
- Using incorrect type names like 'int'
fn greet(name: &str) {
println!("Hello, {}!", name);
}
fn main() {
greet("Alice");
}Solution
Step 1: Understand the function call and parameter
The functiongreettakes a string slice&strand prints a greeting with the given name.Step 2: Trace the function call in
Callingmaingreet("Alice")passes "Alice" as the parameter, so it prints "Hello, Alice!".Final Answer:
Hello, Alice! -> Option AQuick Check:
Function prints greeting with passed name [OK]
- Printing the parameter name instead of its value
- Confusing &str with variable name
- Expecting a compilation error due to &str
fn add(a i32, b: i32) -> i32 {
a + b
}Solution
Step 1: Check parameter syntax
Each parameter must have a colon between name and type, e.g.,a: i32.Step 2: Identify the error
Parametera i32is missing the colon, causing a syntax error.Final Answer:
Missing colon between parameter name and type for 'a' -> Option DQuick Check:
Parameter syntax requires colon [OK]
- Omitting colon between name and type
- Confusing parameter order syntax
- Forgetting return type after ->
fn calculate_area(width: f64, height: f64) -> f64 {
width * height
}Which call correctly uses the function parameters to calculate the area of a 5.0 by 3.0 rectangle?
Solution
Step 1: Check parameter types
The function expects twof64(floating-point) parameters.Step 2: Evaluate each call
calculate_area(5, 3) uses integer literals, which Rust automatically coerces tof64(implicit conversion). calculate_area(5.0, 3.0) uses floating-point literals matching thef64parameter type exactly. calculate_area("5", "3") uses strings, type mismatch. calculate_area(width=5.0, height=3.0) uses named arguments, which Rust does not support.Final Answer:
calculate_area(5.0, 3.0) -> Option BQuick Check:
Use correct types and order for parameters [OK]
- Using integers instead of floats without suffix
- Passing strings instead of numbers
- Trying named arguments (not supported in Rust)
Ready to prove it?
Pass the test and this pattern moves unknown
