Open3
自作ブラウザ
selfとSelf
- self
- メソッドのレシーバー
- インスタンスメソッド内でそのインスタンス自身を参照
- Self
- 現在の型
- コンストラクタの返り値の型などで使用
&mut
- 不変な参照(
&T
)- 参照先の値を読み取ることはできるが、変更することは不可
- 可変な参照(
&mut T
)- 参照先の値を読み取るだけでなく、変更することも可能
Result
-
Result
型はRustにおける典型的な列挙型(enum) - エラーが発生する可能性のある操作の結果を返す際に、
Result
型を使用
// Result<T, E> = Ok(T) or Err(E) という意味
enum Result<T, E> {
Ok(T),
Err(E),
}
-
T
は成功時に返される値の型 -
E
はエラーメッセージやエラー情報の型
// ResultはEnum型なので、Ok(i32)かErr(String)を返すという意味
fn string_to_number(s: &str) -> Result<i32, String> {
// 省略
}
fn main() {
let valid_input = "42";
let invalid_input = "not_a_number";
match string_to_number(valid_input) {
Ok(number) => println!("The number is: {}", number),
Err(error) => println!("Error: {}", error),
}
match string_to_number(invalid_input) {
Ok(number) => println!("The number is: {}", number),
Err(error) => println!("Error: {}", error),
}
}