この記事を読むのに必要な時間:およそ 0.5 分
お詫びと訂正(正誤表)
本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。
P.183 図4.12 「カウンタ:3」部分
誤 |
child: Node |
正 |
child: None |
P.320 リスト8.7
最後の行に以下が必要でした。
正 |
print_sum_hello(10000000)
|
P.190 図4.13中のテキスト(2ヵ所)
P.191 図4.14中のテキスト(2ヵ所)
P.193 図4.15中のテキスト(2ヵ所)
P.190 図4.16中のテキスト(2ヵ所)
P.214 下から8行目
誤 |
また、EqおよびOrdは比較が必ずできる(失敗しない)型に対して、PartialEqおよびPartialOrdは比較ができない場合がある型に対して実装します。i32型などの整数型には、前者の"Partial"なしのトレイトが実装されているのに対し、f64、f32などの浮動小数点型には後者の"Partial" 付きのトレイトが実装されています。浮動小数点型の場合にはNaN(Not A Number)との比較ができないため、"Partial"付きになっています。 |
正 |
また、同じ型の同じ値同士の等値比較において、EqやOrdはいつでも真となることを前提にできる型に実装できるのに対し、PartialEqおよびPartialOrdはそれを前提にできる型に加え、できない型にも実装できます(数学的な言葉でいえば、PartialEqやPartialOrdは「その型に属する値が反射律を満たすことを要求されない型」に対して実装できるものです)。EqやOrdが実装される型には、自動的にPartialEqやPartialOrdも実装されています(EqやOrdがPartialEqやPartialOrdのサブトレイト(p216参照)であるため)。たとえば、浮動小数点型f32、f64はNaN(Not A Number)という値を含んでいますが、NaN == NaNの等値比較の結果は偽となるため、これらの型には"Partial"付きのトレイトのみが実装されています。一方、i32型などの整数型には、"Partial"なし、および"Partial"付きの両方のトレイトが実装されています。 |
P.57 上から4行目
誤 |
=で結び付けたときの挙動はC言語と同じように考えることができます。 |
正 |
=で結び付けたときの挙動は次のように確認することができます。 |
P.57 下から3行目
誤 |
すなわち、xやyというラベルが貼られた値は異なるメモリ領域に確保されており、xに何らかの操作をしてもxというラベルが貼られたメモリ領域の値が変わるだけで、yというラベルが貼られたメモリ領域の値はなんら影響を受けません(図3.8)。 |
正 |
すなわち、x、yのラベルが貼られている同一のイミュータブルな変数の値があるときに、x = x + 1のような操作をした場合、その計算結果を格納する新しいメモリ領域が確保され、その新しいメモリ領域のラベルがxになります。このとき、yというラベルが貼られた元のメモリ領域の値はなんら影響を受けません(図3.8)。 |
P.58 図3.8
中央の図の内容に誤りがありました。以下が正しい図です。
誤 |
|
正 |
|
P.192 下から4行目
誤 |
Rc::clone() |
正 |
Rc::new() |
P.23 3行目
誤 |
std::fmt::Displayいうトレイト |
正 |
std::fmt::Displayというトレイト |
P.71 3つ目のコード囲み10行目
P.142 リスト4.14のキャプション
誤 |
Result<T,E>} |
正 |
Result<T,E> |
余計な「}」がありました。
P.154 Pythonのコード 10行目
誤 |
print("The capital of {} is {}.".format(
|
正 |
print("The capital of {} is {}".format(
|
余計な「.」がありました。
P.154 Pythonのコード 14行目
誤 |
print(The capital of {} is not found.".format(tg))
|
正 |
print("The capital of {} is not found".format(tg))
|
「"」が抜けており,余計な「.」がありました。
P.151 本文5行目
誤 |
Some(“medium) を返却 |
正 |
Some(“large") を返却 |
P.154 Pythonのコード 11行目
P.171 リスト4.19 29行目
P.171 エラー画面 1行目
「e」が抜けていました。
P.174 エラー画面 2行目
P.180 リスト4.22 31行目
P.184 本文7行目
「の」が不要です。
P.213 本文14行目
誤 |
+演算子を使って表示 |
正 |
+演算子を使って表現 |
P.218 リスト5.11 32,41行目
P.17 端末画面
誤 |
$ cargp clippy # clippyを実行
|
正 |
$ cargo clippy # clippyを実行
|
P.154 Pythonのコード 2行目
誤 |
capticals["Japan"] = "Tokyo"
|
正 |
capitals["Japan"] = "Tokyo"
|
P.34 1行目
誤 |
クレート名(json_serde)に変えるだけです。 |
正 |
クレート名(serde_json)に変えるだけです。 |
P.171 リスト 4.19の10行目
誤 |
let number = Box::new(value + 10);
|
正 |
|
P.245 本文9行目
誤 |
実はこれは20行目と同じ意味になります。 |
正 |
実はこれは21行目と同じ意味になります。 |
P.289 3行目の漸化式
誤 |
|
正 |
|
最初のSの下付きは「N-1」ではなく「-1」であるべきでした。