Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+1

Как поменять переменные местами в Rust

По дате
По рейтингу
Аватар пользователя
Новичок
1234567
 fn swap(x: i32, y: i32) -> (i32, i32) { return (y, x);} 
 
fn main() { 
    let mut a=5; let  mut b=6;
    let (a, b) = swap(a,b) ; 
    println!("{} {}", a, b); 
} 
Аватар пользователя
Оракул

В другом ответе только тип i32 меняет :(
Сделаем универсально

12345
 fn main() {  
    let a = 5; let b = "Апельсин";  
    let (b, a) = (a, b);  
    println!("{} {}", a, b);   
} 

Или так

123456789
 fn swap<'a, T, N> (a: &'a T, b: &'a N) -> (&'a N, &'a T)  { 
    (b, a) 
} 
 
fn main() { 
    let a = 5; let b = "Апельсин"; 
    let (a, b) = swap(&a, &b); 
    println!("{} {}", a, b);  
}