「The Rust Programming Language」でRustを学ぶ その03 構造体(5章まで)

2025-08-25 12:06:44

The Rust Programming Language 日本語版 - The Rust Programming Language 日本語版

の、今回は5章「構造体」

ソースは下記のrectangleディレクトリ
ryotakato/rust_the_book_src

まあ、構造体自体の概念は知っているから、別に全然難しくはなかったけど、
フィールド初期化省略記法や、構造体更新記法は面白かったかな。
構造体更新記法は、別構造体には使えないってのは自分で試して分かった発見だし。

あと、メソッド記法を読んでいたら、へー、構造体に関数ではなくメソッドをもたせるんだって思ったけど、
じゃあ、Rustのクラスはどんなのかなって思ったら、
Rustにはクラスという概念がないのね。
びっくり。

Javaから入った人間としては、最近の言語はわりとある印象だったから。

だけど、構造体がわりと便利になっているので、そこまで困らなさそうかな。
トレイトっていう、インターフェース的なものもあるみたいだし。

継承もなさそうで、継承地獄にならないのは好感がもてる。
委譲を推奨している感じ。

脱線するけど、好感がもてるといえば、
Rustのスコープを示す {} は、アームっていうんだってね。
理由はきっとカニのハサミに見えるから。
Rustacean といい、カニに関連したものを言語の一部の用語とする、その遊び心が好きだな。

閑話休題。
で、そんな感じでネットを調べていたら、
下記記事をみつけた。

Rustがオブジェクト指向型言語ではないのとその理由 - なんか考えてることとか

非常に勉強になるなって思ったけど、
自分の経験で考えてみると、その言語がオブジェクト指向型言語であるかどうか自体はどうでもよくて、
オブジェクト指向を意識して書けるかどうかのほうが大きいかな。
結局目的は、ドメイン単位で分けて作って、そのドメイン内で書いているうちは余計なことは考えなくてよい、
かつ、それぞれのドメインをブロックのように組み合わせてプログラムが書けるかどうかってところにあるのかなって。
だから、オブジェクト指向のルールに厳密に則っている必要もないと思う。

まあ、沿っていないものをオブジェクト指向って呼ぶと混乱を産むよってことなんだろうけど、
オブジェクト指向って言葉自体、かなり人によって幅がある言葉だもんな。

とりあえず、今日はそんなところ。




Comments

There are currently no comments on this article, be the first to add one below

Add a Comment

Note that I may remove comments for any reason, so try to be civil. If you are looking for a response to your comment, either leave your email address or check back on this page periodically.