型は、処理の結果がとりうる2つの可能性のうち、1つを表すための方法です。慣例に従い、一方が期待されている結果、つまり「Ok」となり、もう一方が予想外の結果、つまり「Err」になります。メソッドが定義されています。メッセージにエラーの値が含まれているところが異なります。制約を付けることが求められます。制約を満たしているので、実際のところ、うまくいく傾向にあります。型に付くということは、単にその型の値が、人間が読める形式で表示できることを意味しています。)では、例を見ていきましょう。整数をパースするRustの標準ライブラリを使うと、文字列を整数に変換することが、すごく簡単にできます。呼ぶことについて懐疑的になっているはずです。文字列が数字としてパースできなければ、パニックが起こります。/home/rustbuild/src/rust-buildbot/slave/beta-dist-rustc-linux/build/src/libcore/result.rs:729これは少し目障りです。あなたが使っているライブラリの中でこれが起こされたら、イライラするに違いありません。代わりに、私たちの関数の中でエラーを処理し、呼び出し元にどうするのかを決めさせるべきです。戻り値の型(リターン型)を変更しなければなりません。シグネチャを見ろということです。F::Err>;}うむ。使わないといけないことはわかりました。戻すようにすることも可能だったでしょう。文字列が整数としてパースできなかったを、ちゃんと区別しています。(空の文字列だったのか、有効な数字でなかったのか、大きすぎたり、小さすぎたりしたのか。使ってより多くの情報を提供するほうが、単に「不在」を示すことよりも理にかなっています。どちらを選ぶという事態に遭遇したときは、このような理由付けのやり方を真似てみてください。詳細なエラー情報を提供できるのなら、多分、それをしたほうがいいでしょう。(後ほど別の例もお見せます。メソッドは一般化されているので、標準ライブラリにある、あらゆる数値型について定義されています。この関数を同じように一般化することもできますが(そして、そうするべきでしょうが)、今は明快さを優先しましょう。実装がどうなっているか探しましょう。押して「FromStr」を探します。すれば、具体的なエラー型が見つかります。場合分けに、またしてもやられたわけです。たくさんのコンビネータが、メソッドとして定義されています。間では、共通のコンビネータが数多く存在します。