Tipos Escalares

La siguiente tabla enumera los tipos primitivos en Rust y su equivalente en C# y .NET:

RustC#.NETNotas
boolboolBoolean
charcharCharMirar la nota 1.
i8sbyteSByte
i16shortInt16
i32intInt32
i64longInt64
i128Int128
isizenintIntPtr
u8byteByte
u16ushortUInt16
u32uintUInt32
u64ulongUInt64
u128UInt128
usizenuintUIntPtr
f32floatSingle
f64doubleDouble
decimalDecimal
()voidVoid o ValueTupleMirar las notas 2 y 3.
objectObjectMirar la nota 3.

Notas:

  1. char en Rust y Char en .NET tienen diferentes definiciones. En Rust, un char tiene 4 bytes de ancho y es un Unicode scalar value, pero en .NET, a Char tiene 2 bytes de ancho y almacena el carácter usando la codificación UTF-16. Para más información, mirar la documentación de char en Rust.

  2. Mientras que en Rust, unit () (una tupla vacía) es un valor expresable, el equivalente más cercano en C# sería void para representar la nada. Sin embargo, void no es un valor expresable, excepto cuando se usan punteros y código no seguro. .NET tiene ValueTuple, que es una tupla vacía, pero C# no tiene una sintaxis literal como () para representarlo. ValueTuple se puede usar en C#, pero es muy poco común. A diferencia de C#, F# sí tiene un tipo unit similar a Rust.

  3. Mientras void y object no son tipos escalares (aunque tipos escalares como int son subclases de object en la jerarquía de tipos de .NET), se han incluido en la tabla anterior por conveniencia.

Mira también: