Rust Programming Language: Data Types

0
Programming in Rust involves a solid understanding of various concepts, and one of the fundamental aspects is data types. Rust is a statically typed language, meaning that it requires explicit knowledge of variable types during compilation. In this article, we'll delve into common programming concepts related to data types in Rust, covering both scalar and compound types.

Scalar Types

Integer Types

Integers represent whole numbers without fractional components. Rust provides a range of integer types, categorized as either signed (with the possibility of negative values) or unsigned (only positive values). Here's a summary of the integer types in Rust:



The `isize` and `usize` types are platform-dependent, adapting to the architecture of the system.

Rust allows flexibility in writing integer literals, supporting decimal, hex, octal, binary, and byte literals:
  • Decimal: `98_222`
  • Hex: `0xff`
  • Octal: `0o77`
  • Binary: `0b1111_0000`
  • Byte (u8 only): `b'A'`
Understanding the appropriate integer type is crucial for efficient memory usage. Rust defaults to `i32` if the type is unspecified, which is suitable for most scenarios.

Integer Overflow

Rust aims to prevent integer overflow by default, providing safety features during debugging. In debug mode, exceeding the permissible range results in a runtime panic. In release mode, overflow causes wrapping, where values exceeding the maximum wrap around to the minimum.

To handle overflow explicitly, Rust offers methods like `wrapping_*`, `checked_*`, and `saturating_*`.

Floating-Point Types

Rust supports two primitive types for floating-point numbers: `f32` and `f64`, with 32 and 64 bits of precision, respectively. The default type is `f64` due to its similar speed to `f32` on modern CPUs but with increased precision.

Numeric operations for both integer and floating-point types include addition, subtraction, multiplication, division, and remainder.

Boolean Type

Boolean types in Rust, denoted as `bool`, have two possible values: `true` and `false`. Booleans play a crucial role in conditional expressions.

Character Type

Rust's `char` type represents Unicode Scalar Values, allowing for diverse characters, including emojis and accented letters. Unicode Scalar Values range from U+0000 to U+D7FF and U+E000 to U+10FFFF inclusive.

Compound Types

Tuple Type

Tuples group multiple values into a single compound type. Once declared, tuples have a fixed length. Destructuring allows extracting individual values from a tuple.

Rust
let tup: (i32, f64, u8) = (500, 6.4, 1);
let (x, y, z) = tup;
let six_point_four = tup.1;

Array Type

Arrays consist of elements of the same type with a fixed length. They are useful for stack allocation and situations where the number of elements remains constant.

Rust
let a = [1, 2, 3, 4, 5];
let a: [i32; 5] = [1, 2, 3, 4, 5];
let a = [3; 5]; // initializes an array with five elements, all set to 3
Accessing array elements involves indexing, starting from 0. Rust ensures safety by checking array bounds at runtime.

Rust
let first = a[0]; // Accessing the first element

Post a Comment

0Comments
Post a Comment (0)