データ構造のフォーマット規則
§8 リテラル
§8.1 整数リテラル。 整数リテラルはそのまま出力されます。
javascript
// ✅ 正しい
let x = 42;§8.2 浮動小数点数リテラル。 浮動小数点数リテラルは小数点を含める必要があります。
javascript
// ✅ 正しい
let x = 3.14;
let y = 42.0; // 小数点が必要
// ❌ 誤り
let y = 42; // 整数なので誤り§8.3 文字列リテラル。 デフォルトではダブルクォートを使用します。single_quote = true の場合はシングルクォートを使用します。
javascript
// デフォルト(ダブルクォート)
let s = 'hello';
// single_quote = true
let s = 'hello';§8.4 真偽値リテラル。 真偽値リテラルは小文字を使用します。
javascript
// ✅ 正しい
let x = true;
let y = false;
// ❌ 誤り
let x = True;
let y = FALSE;§10 リストと辞書
§10.1 リストの形式。 リストは [] で囲み、要素間はカンマで区切ります。
javascript
// ✅ 正しい
let x = [1, 2, 3];
// ❌ 誤り
let x = [1, 2, 3];§10.2 辞書の形式。 辞書は {} で囲み、キーと値のペアは key: value 形式を使用します。
javascript
// ✅ 正しい
let x = { a: 1, b: 2 };
// ❌ 誤り
let x = { a: 1, b: 2 };§10.3 リスト内包表記。 リスト内包表記は [expr for var in iterable] 形式を使用します。
javascript
// ✅ 正しい
let x = [i * 2 for i in range(10)];
// 条件付き
let x = [i for i in range(10) if i > 5];§11 Match式
§11.1 Matchの形式。 match キーワードと式の間にスペースを空けます。
javascript
// ✅ 正しい
match x { ... }
// ❌ 誤り
match(x) { ... }§11.2 Patternの整列。 複数のpatternは整列させ、スペースで埋めます。
javascript
// ✅ 整列
match x {
1 => "one",
2 => "two",
100 => "hundred",
_ => "other",
}§11.3 Pattern过长换行。 Pattern过长换行 时,pattern换行,=> 与 body对齐。
javascript
// ✅ 换行
match x {
VeryLongPatternName { field1, field2 }
=> handle_case(field1, field2),
_ => default_case(),
}§11.4 タプル
§11.4.1 タプルの形式。 タプルは () で囲み、要素間はカンマで区切ります。
javascript
// ✅ 正しい
let t = (1, "hello", true);
let t = (1,); // 単一要素のタプル
// ❌ 誤り
let t = (1, "hello", true); // カンマ後スペースなし
let t = (1,"hello",true); // カンマ後スペースなし§11.4.2 空のタプル。 空のタプルは () で表します。
javascript
// ✅ 正しい
let t = ();§11.5 インデックスアクセス
§11.5.1 インデックスの形式。 インデックスは expr[index] 形式を使用します。
javascript
// ✅ 正しい
let x = arr[0];
let y = matrix[i][j];
// ❌ 誤り
let x = arr[0]; // 余分なスペース
let y = matrix[i][j]; // 余分なスペース§11.6 フィールドアクセス
§11.6.1 フィールドアクセスの形式。 フィールドアクセスは expr.field 形式を使用します。
javascript
// ✅ 正しい
let x = obj.field;
let y = obj.method();
// ❌ 誤り
let x = obj.field; // 余分なスペース
let y = obj.field; // 余分なスペース§11.6.2 チェーンされたフィールドアクセス。 チェーンされたフィールドアクセスが行幅を超える場合、各メソッド呼び出しを1行に1つずつ配置します。
javascript
// 行幅を超える場合
let result = object.method1().method2().method3().method4();
// フォーマット後
let result = object.method1().method2().method3().method4();