u8 = 106_u8;
let b = &a; // &u8
let c = &&a; // &&u8
assert!(a.type_id() == b.type_id()); // true
assert!(b.type_id() == c.type_id()); // false
assert!(TypeId::of::<u32>() == TypeId::of::<&u32>()); // false ??
assert!(TypeId::of::<&u32>() == TypeId::of::<&&u32>()); // false
}
Типы у &T и &&T получаются разные?
Да, и у &T с T. Первый ассерт работает, потому что вызов по ссылке, скорее всего, и сравнивает он id одинаковых типов.
Обсуждают сегодня