T-Ruby v0.0.41 リリース
T-Ruby v0.0.41 では、キーワード引数構文が導入され、より表現力のある型アノテーションが可能になりました。(PR#27)
キーワード引数構文
📖 参照: オプション・Rest パラメータ
このリリースでは、位置引数と区別するキーワード引数のための新しい構文が追加されました:
分割代入を使用したキーワード引数
def create_user({ name: String, email: String }): User
User.new(name: name, email: email)
end
# キーワード引数で呼び出し
create_user(name: "Alice", email: "alice@example.com")
Hash リテラルパラメータ
def configure(config: { host: String, port: Integer }): void
# config は分割代入されたキーワードではなく、Hash パラメータです
end
ダブルスプラットによるフォワーディング
def forward_options(**opts: Symbol): void
other_method(**opts)
end
構文まとめ
| 構文 | 意味 |
|---|---|
{ name: String } | キーワード引数(分割代入) |
config: { host: String } | Hash リテラルパラメータ |
**opts: Type | フォワーディング用ダブルスプラット |
バグ修正
括弧なしメソッドの戻り値型削除を修正 (PR#24, Issue#23)
以前は、括弧なしで定義されたメソッドがコンパイル後も型アノテーションが残り、無効な Ruby コードが生成されていました:
# 修正前(T-Ruby ソース)
def greet: String
"Hello!"
end
# ❌ バグ:型アノテーションが削除されない
def greet: String
"Hello!"
end
# ✅ 修正済み:正しい Ruby コードにコンパイル
def greet
"Hello!"
end
この修正により、括弧の有無に関係なく、すべてのメソッドシグネチャが正しい Ruby コードに変換されます。
内部改善
- 共通の文字列ユーティリティを
StringUtilsモジュールに抽出
アップグレード
gem update t-ruby
