루비에 대한 조언


13

어떻게 단축 할 수 있습니까?

p=gets.to_i
a=gets
b=gets.to_i

입력이 정수, 문자열, 정수가된다면?


4
PPCG에 오신 것을 환영합니다!
Martin Ender

이 주제가 아닌 주제라고 말할 사람들을 위해, 당신이 그것을 주장하고 싶다면 메타를 읽고 나에게 메시지를 보내십시오.
Stan Strum

답변:


7

ARGV ($ *) 및 대량 할당 사용

(면책 조항 : 나는 루비를 모른다. 그러나 이것은 TIO에서 작동 한다 )

p,a,b=$*
p=p.to_i
b=b.to_i

30 대신 28 26 바이트 ($ * 트릭을 지적한 스낵 덕분에)


ARGV는 $ *로 액세스하여 2 바이트를 절약 할 수 있습니다
Snack

4
@Snack Hehe, 팁 답변 골프 :)
AdmBorkBork

6

람다 사용

응답은 일반적으로 입력 / 출력이 람다의 매개 변수 / 반환 값인 람다 함수로 허용되므로 다음을 수행 할 수 있습니다.

->p,a,b{...}

이것을 변수에 할당하면 f다음과 같이 호출됩니다

f[p,a,b]

일반적으로 입력 유형을 가정하는 것이 좋지만 안전하려면 답변에서 언급 할 수 있습니다.

수용 가능한 입력 / 출력 방법에 관한 관련 메타 포스트


6

어떤 이유로 stdin / stdout io로 전체 프로그램이 필요한 경우 가장 짧은 시간 동안 -n플래그를 사용하여 다음에 대한 호출을 gets.to_i줄입니다 eval$_.

p=eval$_
a=gets
b=gets.to_i

-n플래그를 사용하여 코드를 둘러싸고 while gets ... end더 입력하여 프로그램이 소비보다 공급되면 프로그램 의지 루프, 그래서.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.