3章基本的な型

この世界には本当にさまざまな種類の本がある。これは当然だ。この世界には、本当にさまざまな種類の人がいて、すべての人が何か違うものを読みたいと思っているのだから。

−Lemony Snicket†1

[†1] 訳注:子供向け小説「世にも不幸なできごと」シリーズの作者。

Rust言語は型を中心に構成されていると言ってもいい。Rustで高性能なプログラムが書けるのは、個々の状況に合わせて、簡潔さとコストのバランスが取れたデータ表現を選択する自由をプログラマに与えているからだ。Rustのメモリ安全性とスレッド安全性の保証は、型システムの健全性の上に構築されている。Rustの柔軟性はジェネリック型とトレイトによって得られている。

本章では、Rustが値を表現する際に用いる基本型について説明する。基本型は、ソースコード上に現れる型に対して、対応する具体的な型が機械語レベルに存在し、コストや性能が正確に予測できる。Rustは、プログラマが指定した通りに値を表現することを保証しないが、指定から逸脱するのは、性能が確実に向上する場合だけだ。

JavaScriptやPythonなどの動的に型付けされる言語と比較すると、Rustプログラムを書く際には事前によく計画を立てる必要がある。関数の仮引数と返り値の型や、構造体のメンバなどの型を明示的に書かなければならない。しかし、次の2つの機能によってRustでのプログラミングは予想されるよりも楽になっている。

  • 明示的に書いた型を用いて、Rustコンパイラの型推論機構が残りの型のほとんどを推論(infer)してくれる。実際には、変数や式の型は一意に決まることが多い。そのような場合にはコンパイラに任せることができる。例えば、次のように関数に出てくるすべての型を明示的に書くこともできる。 ...

Get プログラミングRust 第2版 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.