Rust Basics

Rust Functions and Return Values

Define functions with typed parameters and return a value without writing return.

  • Beginner
  • 2 min read
  • 1 runnable example
What you'll learn
  • Parameters with types
  • Return type after ->
  • The last expression is returned
area(4, 5)
  1. 14, 5arguments
  2. 2width * heightthe body runs
  3. 320returned to the caller

Values go in, one value comes out

A function groups code under a name. In Rust you write the type of every parameter and, after ->, the type of the value the function returns.

The last expression of a function is its return value when it has no semicolon, so width * height is returned without the return keyword. format! builds a String the same way println! prints one.

Key points

  1. Every parameter needs a type.
  2. -> u32 says what the function returns.
  3. A final expression without ; is the return value.

Runnable Rust example

Rust
Run code →
main.rs
fn area(width: u32, height: u32) -> u32 {
    width * height
}

fn describe(name: &str, size: u32) -> String {
    format!("{name} covers {size} square meters")
}

fn main() {
    let size = area(4, 5);
    println!("{}", describe("The room", size));
}
Get a Run button for this example Result of running the code
The room covers 20 square meters

Practice

Open the example in the online compiler, change a value or add a line, and predict the output before you run it. Then break the code on purpose and read the compiler's message.

Finished this lesson?

Mark it as learned to track your progress.

Next: Binary Search →

Practice with a challenge

Use what this lesson covers to solve a real problem. Each challenge runs in your browser with instant tests and an AI review.

All challenges