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
