본문으로 건너뛰기

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