Chapter 3. Fundamental Types
There are many, many types of books in the world, which makes good sense, because there are many, many types of people, and everybody wants to read something different.
Lemony Snicket
To a great extent, the Rust language is designed around its types. Its support for high-performance code arises from letting developers choose the data representation that best fits the situation, with the right balance between simplicity and cost. Rustâs memory and thread safety guarantees also rest on the soundness of its type system, and Rustâs flexibility stems from its generic types and traits.
This chapter covers Rustâs fundamental types for representing values. These source-level types have concrete machine-level counterparts with predictable costs and performance. Although Rust doesnât promise it will represent things exactly as youâve requested, it takes care to deviate from your requests only when itâs a reliable improvement.
Compared to a dynamically typed language like JavaScript or Python, Rust requires more planning from you up front. You must spell out the types of function arguments and return values, struct fields, and a few other constructs. However, two features of Rust make this less trouble than you might expect:
-
Given the types that you do spell out, Rustâs type inference will figure out most of the rest for you. In practice, thereâs often only one type that will work for a given variable or expression; when this is the case, ...
Get Programming Rust, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.