Open3

自作ブラウザ

bbtitbbtit

selfとSelf

  • self
    • メソッドのレシーバー
    • インスタンスメソッド内でそのインスタンス自身を参照
  • Self
    • 現在の型
    • コンストラクタの返り値の型などで使用
bbtitbbtit

&mut

  • 不変な参照(&T)
    • 参照先の値を読み取ることはできるが、変更することは不可
  • 可変な参照(&mut T
    • 参照先の値を読み取るだけでなく、変更することも可能
bbtitbbtit

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),
    }
}