메소드 서명에서 변수 식별자를 문자열로 처리하려면 irb의 동작을 어떻게 강요합니까?루비 irb에서 루비 캐스트 메소드 입력 변수를 문자열로 입력
irb 기반 계산 도구를 만들려고하는데 irb 셸에서이 도구를 사용하는 사용자의 입력을 줄이려고합니다. 내 사용자가 루비 프로그래머가 아니거나 루비 구문에 대해 많이 알고 있다고 가정합니다. The는 명령 행에 어떤 편의 시설을 가지고있을 수 있습니다.
I이 파일 내부의 파일
calculator.rb
이는
def calculate(value, units)
... some logic
end
은 내가
를 입력하도록 사용자에게 지시 때문에irb -r path/to/calculator.rb
같은 IRB를 발사하는 사용자에게 지시입니다
calculate(10, inches)
반환 값을 irb로 가져 오기
두 번째 매개 변수를 따옴표로 묶어야한다는 것을 사용자가 이해하지 않고 어떻게 할 수 있습니까? 즉 나는 사용자가
calculate(10, "inches")
그것이 내 스크립트 안에 내 메서드에 전달되기 전에 대신 문자열 변수 식별자로 사용자의 입력을 캐스팅 할 수 있습니다를 입력 할 필요가 싶지 않아? 어쩌면 내가하고 싶은건 irb shell을 근본적으로 깨뜨리지 않고는 불가능한가?
루비 자체를 다시 컴파일해야하기 때문에 IRB 이상을 깨뜨릴 수 있습니다. 문자열이 구분된다는 기대는 인터프리터 자체에서 정의되며 모든 언어와 스크립트에서 사용됩니다. 그렇게했다면 모든 것이 중단 될 것입니다. –
다시 컴파일 할 필요는 없으며 대신 method_missing을 사용할 수 있습니다. –