5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

命名規則

命名規則とは、プログラム内で使用される名前(変数名や関数名など)に一貫性を持たせるためのルールです。これにより、コードの可読性や保守性が向上し、他の開発者がコードを理解しやすくなります。

命名規則は、プログラミング言語ごとに異なることがありますが、多くの言語で一般的に使用される命名規則には、スネークケース(snake_case)、キャメルケース(UpperCamelCase または lowerCamelCase)、ケバブケース(kebab-case)などがあります。

  • スネークケース (snake_case)
    単語の間にアンダースコア (_) を入れる形式。例: example_variable
    全て大文字の場合は特に SCREAMING_SNAKE_CASE と呼ばれる。
  • キャメルケース (CamelCase)
    単語の先頭を大文字にする形式
    • UpperCamelCase (PascalCase)
      最初の単語の先頭文字は小文字。例: ExampleVariable
    • lowerCamelCase
      最初の単語の先頭文字は大文字。例: exampleVariable
  • ケバブケース (kebab-case)
    単語の間にハイフン (-) を入れる形式。例: example-variable

Rust の命名規則

Rust では、スネークケースアッパーキャメルケースを採用しています。

Rust の命名規則は RFC 430 にまとめられています。

アイテム 命名規則
クレート snake_case (ただし、単一の単語を優先する)
モジュール snake_case
UpperCamelCase
トレイト UpperCamelCase
列挙型のバリアント UpperCamelCase
関数 snake_case
メソッド snake_case
一般的なコンストラクタ new もしくは with_more_details
変換コンストラクタ from_some_other_type
ローカル変数 snake_case
静的変数 SCREAMING_SNAKE_CASE
定数 SCREAMING_SNAKE_CASE
型パラメータ 簡潔に UpperCamelCase, 通常は大文字 1 文字: T
ライフタイム 短く、小文字: 'a

頭字語の扱い

UpperCamelCase では、頭字語USAIT など)は 1 つの単語としてカウントされます。UUID ではなく Uuid とします。 Snake_case では、頭字語は小文字になります。is_XID_start ではなく is_xid_start とします。

数字の扱い

UpperCamelCase の名前では、わかりやすくするために複数の数字を _ で区切ることができます (Windows101709 ではなく Windows10_1709)。

単一文字の扱い

Snake_case または SCREAMING_SNAKE_CASE では、最後の「単語」でない限り、「単語」は単一の文字で構成されてはなりません。 したがって、b_tree_map ではなく btree_map が使用されますが、PI2 ではなく PI_2 が使用されます。

具体例

型名

Vec (ベクター型)、HashMap (ハッシュマップ型)

// 型名は UpperCamelCase
struct MyStruct {
    field: i32,
}

トレイト名

// トレイト名はUpperCamelCase
trait MyTrait {
    fn do_something(&self);
}

列挙型のバリアント

// 列挙型のバリアントは UpperCamelCase
enum MyEnum {
    VariantOne,
    VariantTwo,
}

関数名

// 関数名は snake_case
fn my_function() {
    // 函数の内容
}

メソッド名

impl MyStruct {
    // メソッド名は snake_case
    fn my_method(&self) {
        // メソッドの内容
    }
}

一般的なコンストラクタ

impl MyStruct {
    // 一般的なコンストラクタ
    fn new() -> Self {
        Self { field: 0 }
    }

    fn with_more_details(field: i32) -> Self {
        Self { field }
    }
}

変換コンストラクタ

impl From<OtherType> for MyStruct {
    // 変換コンストラクタは from_some_other_type
    fn from(other: OtherType) -> Self {
        Self { field: other.field }
    }
}

ローカル変数

fn main() {
    // ローカル変数は snake_case
    let my_variable = 10;
}

静的変数と定数

// 静的変数と定数は SCREAMING_SNAKE_CASE
static MAX_VALUE: i32 = 100;
const PI: f64 = 3.141592653589793;

型パラメータ

// 型パラメータは UpperCamelCase、通常は大文字 1 文字
fn generic_function<T>(value: T) {
    // 関数の内容
}

ライフタイム

// ライフタイムは短く、小文字
fn lifetime_example<'a>(value: &'a str) {
    // 関数の内容
}

おわりに

これらの命名規則に従うことで、Rustのコードは一貫性があり、読みやすく、理解しやすくなります。命名規則は、チーム開発や長期的なプロジェクトにおいて特に重要です。

5
5
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
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?