Skip to Content
プログラミングRust 第2版
book

プログラミングRust 第2版

by Jim Blandy, Jason Orendorff, Leonora F. S. Tindall, 中田 秀基
January 2022
Intermediate to advanced
680 pages
11h 35m
Japanese
O'Reilly Japan, Inc.
Content preview from プログラミングRust 第2版

12章演算子オーバーロード

2章で示したマンデルブロ集合を描画するプログラムでは、numクレートのComplex型を使って、複素平面上の数値を表現した。

#[derive(Clone, Copy, Debug)]
struct Complex<T> {
    /// Real portion of the complex number       複素数の実部
    re: T,

    /// Imaginary portion of the complex number  複素数の虚部
    im: T
}

そこでは、Complex値を組み込みの数値型と同様に、+、*演算子を使って、足したり掛けたりすることができていた。

z = z * z + c;

独自の型に対しても算術演算などの演算をサポートすることができる。これにはいくつかの組み込みトレイトを実装すればよい。この機能は演算子オーバーロード(operator overloading)と呼ばれ、C++やC#、Python、Rubyの演算子オーバーロードとほぼ同じ効果を持つ。

演算子オーバーロードに用いるトレイトは、それがサポートする言語機能によって、いくつかのカテゴリに分類することができる。表12-1にこれを示す。本章ではこれらのカテゴリを1つずつ見ていく。本章の目的は、読者が自分で定義した型を言語によりよい形で統合できるようにするとともに、「11.5 制約のリバースエンジニアリング」で示したドット積のように、演算子を使って書いた方が自然な演算をジェネリック関数で書く方法を理解してもらうことだ。また、本章を読むことで、言語自身の機能がどのように実装されているかがある程度理解できるようになるはずだ。

表12-1 演算子オーバーロードに用いるトレイトのまとめ ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

プログラミングRust

プログラミングRust

Jim Blandy, Jason Orendorff, 中田 秀基
詳解 システム・パフォーマンス 第2版

詳解 システム・パフォーマンス 第2版

Brendan Gregg, 西脇 靖紘, 長尾 高弘
レガシーコードからの脱却 ―ソフトウェアの寿命を延ばし価値を高める9つのプラクティス

レガシーコードからの脱却 ―ソフトウェアの寿命を延ばし価値を高める9つのプラクティス

David Scott Bernstein, 吉羽 龍太郎, 永瀬 美穂, 原田 騎郎, 有野 雅士

Publisher Resources

ISBN: 9784873119786Other