fn main() {
    let mut v = vec![100, 32, 57];
    for i in &mut v {
        println!("{}", type_of(i));
    }
}
fn type_of<T>(_: T) -> String {
    let a = std::any::type_name::<T>();
    return a.to_string();
}
>> &mut i32
>> &mut i32
>> &mut i32
I can understand this.
fn main() {
    let mut v = vec![100, 32, 57];
    for &mut i in &mut v {
        println!("{}", type_of(i));
    }
}
fn type_of<T>(_: T) -> String {
    let a = std::any::type_name::<T>();
    return a.to_string();
}
>> i32
>> i32
>> i32
Why this is showing "i32" ????
It seems like trying "&mut &mut i32" but I cant understand why that "&mut" reference resolved in this case...
I thought this is doing same thing under code.
let mut a = 5;
let mut b = &mut a;
println!("{}", type_of(&mut b));
>> &mut &mut i32
>> &mut &mut i32
>> &mut &mut i32