3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

変数の宣言

TypeScriptの場合

TypeScriptではletconstを使って変数を宣言します。

let mutableVariable = 42; // 再代入可能
const immutableVariable = "Hello, TypeScript!"; // 再代入不可

Rustの場合

Rustではletを使って変数を宣言します。デフォルトでは不変(immutable)ですが、再代入可能にしたい場合はmutキーワードを使用します。

let immutable_variable = "Hello, Rust!"; // デフォルトで不変
let mut mutable_variable = 42; // 再代入可能
mutable_variable = 100; // OK

関数の宣言

TypeScriptの場合

TypeScriptではfunctionキーワードを使うか、アロー関数の形で関数を宣言します。戻り値の型はオプションですが、型を明示することが推奨されます。

// functionを使う
function add(a: number, b: number): number {
  return a + b;
}

// アロー関数で書く
const greet = (name: string): string => {
  return `Hello, ${name}!`;
};

Rustの場合

Rustではfnキーワードを使って関数を宣言します。パラメータと戻り値の型を必ず指定する必要があります。

fn add(a: i32, b: i32) -> i32 {
    a + b // セミコロンを省略すると値が戻り値になる
}

fn greet(name: &str) -> String {
    format!("Hello, {}!", name) // Stringを生成
}

型アノテーション

TypeScriptの場合

TypeScriptでは、変数や関数のパラメータ、戻り値に型を付けることができます。型推論させることも可能です。

let count: number = 10;
let message: string = "TypeScript is fun!";

Rustの場合

Rustでも型アノテーションを使います。型推論させることも可能です。

let count: i32 = 10; // 型を明示
let message = "Rust is fun!"; // 型推論で&strと判定

オブジェクト型の宣言と生成

TypeScriptの場合

TypeScriptでは、interfacetypeを使ってオブジェクトの型を定義します。その型に基づいてオブジェクトを生成します。

type User = {
  id: number;
  name: string;
};

const user: User = {
  id: 1,
  name: "Alice",
};

Rustの場合

Rustでは、structを使って構造体を定義します。インスタンスを生成する際はフィールド名を指定して値を渡します。

struct User {
    id: u32,
    name: String,
}

let user = User {
    id: 1,
    name: String::from("Alice"),
};

undefinedの可能性とOption

TypeScriptの場合

TypeScriptでは、型にundefinedを含めて明示することで対応します。

function findUser(id: number): User | undefined {
  if (id === 1) {
    return { id: 1, name: "Alice" };
  }
  return undefined;
}

const user = findUser(2);
if (user) {
  console.log(user.name);
}

Rustの場合

Rustでは、値が存在するかどうかを安全に扱うためにOption型を使用します。Someで値をラップし、Noneで値がないことを表現します。

fn find_user(id: u32) -> Option<User> {
    if id == 1 {
        Some(User {
            id: 1,
            name: String::from("Alice"),
        })
    } else {
        None
    }
}

let user = find_user(2);
if let Some(user) = user {
    println!("{}", user.name);
}
3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?