How to pass to a function any number of arguments in Rust

2 Answers

0 votes
fn sum(numbers: &[i32]) -> i32 {
    numbers.iter().sum()
}

fn main() {
    let result1 = sum(&[1, 2, 3, 4, 5]);
    println!("The sum is: {}", result1);
    
    let result2 = sum(&[6, 7, 8]);
    println!("The sum is: {}", result2);
}


  
/*
run:
  
The sum is: 15
The sum is: 21
 
*/

 



answered Jan 23, 2025 by avibootz
0 votes
macro_rules! sum {
    ( $( $x:expr ),* ) => {
        {
            let mut temp_sum = 0;
            $(
                temp_sum += $x;
            )*
            temp_sum
        }
    };
}

fn main() {
    let result1 = sum!(1, 2, 3, 4, 5);
    println!("The sum is: {}", result1);
    
    let result2 = sum!(6, 7, 8);
    println!("The sum is: {}", result2);
}


  
/*
run:
  
The sum is: 15
The sum is: 21
 
*/

 



answered Jan 23, 2025 by avibootz

Related questions

2 answers 140 views
1 answer 118 views
1 answer 95 views
1 answer 101 views
2 answers 116 views
2 answers 126 views
3 answers 209 views
...