Bird
Raised Fist0
Rustprogramming~10 mins

Function declaration in Rust - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to declare a function named greet that prints a greeting.

Rust
fn [1]() {
    println!("Hello, world!");
}
Drag options to blanks, or click blank then click option'
Ahello
Bmain
Cprint
Dgreet
Attempts:
3 left
💡 Hint
Common Mistakes
Using main instead of greet.
Using a keyword like print as a function name.
2fill in blank
medium

Complete the code to declare a function named add that takes two i32 parameters.

Rust
fn add(a: i32, [1]: i32) -> i32 {
    a + b
}
Drag options to blanks, or click blank then click option'
Ab
Bc
Cx
Dy
Attempts:
3 left
💡 Hint
Common Mistakes
Using a parameter name different from the one used in the function body.
Using a name not declared as a parameter.
3fill in blank
hard

Fix the error in the function declaration by completing the missing return type.

Rust
fn multiply(x: i32, y: i32) -> [1] {
    x * y
}
Drag options to blanks, or click blank then click option'
Af64
Bbool
Ci32
DString
Attempts:
3 left
💡 Hint
Common Mistakes
Using a return type that does not match the expression type.
Omitting the return type when it is required.
4fill in blank
hard

Fill both blanks to declare a function named is_even that takes an i32 and returns a bool.

Rust
fn [1](num: i32) -> [2] {
    num % 2 == 0
}
Drag options to blanks, or click blank then click option'
Ais_even
Bis_odd
Cbool
Di32
Attempts:
3 left
💡 Hint
Common Mistakes
Using the wrong function name like is_odd.
Using the wrong return type like i32.
5fill in blank
hard

Fill all three blanks to declare a function named describe_number that takes an i32 and returns a String.

Rust
fn [1](n: [2]) -> [3] {
    if n > 0 {
        String::from("Positive")
    } else {
        String::from("Non-positive")
    }
}
Drag options to blanks, or click blank then click option'
Adescribe_number
Bi32
CString
Dnumber_desc
Attempts:
3 left
💡 Hint
Common Mistakes
Using a wrong function name like number_desc.
Using wrong types for parameter or return value.

Practice

(1/5)
1. What keyword is used to declare a function in Rust?
easy
A. fn
B. function
C. def
D. func

Solution

  1. Step 1: Recall Rust function syntax

    In Rust, functions are declared using the keyword fn.
  2. Step 2: Compare options with Rust syntax

    Only fn matches the correct Rust keyword for function declaration.
  3. Final Answer:

    fn -> Option A
  4. Quick Check:

    Function declaration keyword = fn [OK]
Hint: Remember Rust uses 'fn' to start functions [OK]
Common Mistakes:
  • Using 'function' instead of 'fn'
  • Confusing with Python's 'def'
  • Using 'func' which is not Rust syntax
2. Which of the following is the correct syntax to declare a function named greet that takes no parameters and returns nothing in Rust?
easy
A. def greet() {}
B. fn greet() {}
C. fn greet {}
D. function greet() {}

Solution

  1. Step 1: Check function declaration syntax

    In Rust, a function with no parameters and no return value is declared as fn name() {}.
  2. Step 2: Validate each option

    fn greet() {} matches Rust syntax exactly. Options A and B use keywords from other languages. fn greet {} misses parentheses.
  3. Final Answer:

    fn greet() {} -> Option B
  4. Quick Check:

    Empty parameter list requires () in Rust [OK]
Hint: Functions always need () even if no parameters [OK]
Common Mistakes:
  • Omitting parentheses
  • Using other language keywords
  • Adding unnecessary keywords
3. What will be the output of this Rust code?
fn add(a: i32, b: i32) -> i32 {
    a + b
}

fn main() {
    println!("{}", add(3, 4));
}
medium
A. 7
B. 34
C. a + b
D. Error: missing return

Solution

  1. Step 1: Understand the add function

    The function takes two integers and returns their sum using expression a + b.
  2. Step 2: Trace the main function call

    Calling add(3, 4) returns 7, which is printed by println!.
  3. Final Answer:

    7 -> Option A
  4. Quick Check:

    3 + 4 = 7 [OK]
Hint: Sum of 3 and 4 is 7, printed as output [OK]
Common Mistakes:
  • Thinking 'a + b' prints as string
  • Concatenating numbers as strings
  • Assuming missing return error
4. Identify the error in this Rust function declaration:
fn multiply(x i32, y: i32) -> i32 {
    x * y
}
medium
A. Function name is invalid
B. Missing return type
C. Missing colon after parameter x
D. Missing semicolon after multiplication

Solution

  1. Step 1: Check parameter syntax

    Each parameter must have a colon between name and type. Here, x i32 misses the colon.
  2. Step 2: Verify other parts

    Return type is present, function name is valid, and semicolon is not needed after expression in Rust.
  3. Final Answer:

    Missing colon after parameter x -> Option C
  4. Quick Check:

    Parameters need ':' between name and type [OK]
Hint: Parameters need ':' between name and type [OK]
Common Mistakes:
  • Omitting colon in parameters
  • Adding unnecessary semicolons
  • Confusing return type syntax
5. How would you declare a Rust function named is_even that takes an integer parameter and returns a boolean indicating if the number is even?
hard
A. fn is_even(n: i32) -> boolean { n % 2 == 0 }
B. fn is_even(n: i32) { return n % 2 == 0; }
C. fn is_even(n: int) -> bool { n % 2 = 0 }
D. fn is_even(n: i32) -> bool { n % 2 == 0 }

Solution

  1. Step 1: Check parameter and return types

    Parameter type must be i32 and return type bool in Rust.
  2. Step 2: Validate function body syntax

    Expression n % 2 == 0 correctly returns a boolean. fn is_even(n: i32) -> bool { n % 2 == 0 } uses correct syntax and types.
  3. Final Answer:

    fn is_even(n: i32) -> bool { n % 2 == 0 } -> Option D
  4. Quick Check:

    Use i32 and bool with correct expression [OK]
Hint: Use '-> bool' and 'n % 2 == 0' for even check [OK]
Common Mistakes:
  • Using wrong type names like int or boolean
  • Omitting return type
  • Using '=' instead of '==' in condition
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard