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版

22章unsafeなコード

このわたくしを弱いつまらぬ女だとか、おとなしい女だなどとはおもってはいけません。

その反対に、敵には容赦はなくて、親しいものには情けを尽くすのです。

名を讃えられるのも、そういう人たちではありませんか。

−エウリピデス、『メディア』†1

[†1] 訳注:ギリシャ悲劇。不実な元夫イオニスへの復讐のために、イオニスの新妻とイオニスと自らの間の子らを殺すことを誓ってのセリフ。訳文は中村善也、「ギリシャ悲劇全集III」人文書院による。

システムプログラミングの密かな喜びは、安全な言語と注意深く設計された抽象化の足元に、まったく安全でない機械語とビット単位の操作が渦巻いていることだ。Rustでは、そのようなことも書くことができる。

本書でここまで紹介してきた言語は、型や生存期間や境界チェックなどによって、メモリエラーやデータ競合を自動的に防止する。しかし、この種の自動的な推論には限界がある。Rustの推論では安全であると認識できないような、有用なテクニックもたくさんある。

unsafeなコードは、Rustに「コンパイラが安全性を保証できない機能だということを理解した上で利用します」と告げるための機能だ。ブロックや関数をunsafeとすることで、標準ライブラリのunsafe関数を呼び出したり、unsafeなポインタを参照解決したり、CとC++などの他の言語で書かれた関数を呼び出したりすることができるようになる。Rustのその他の安全チェック、すなわち、型チェック、生存期間チェック、インデックスの境界チェックは通常通り行われる。unsafeなコードでは、通常のコードでは使えない機能を少しだけ使うことができる。

この、安全なRustの境界を踏み越える能力によって、Rustのさまざまな最も基本的な機能を、Rust自身で実装することが可能になっている。これはCとC++でも同様で、これらの言語も標準ライブラリをCやC++自身で実装している。 ...

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