루비의 문법 대안
가 작성한 기사 클라우디오 Garau
루비와 같은 간단하고 강력한 언어의 큰 장점 중 하나는 즉 동일한 출력을 인쇄하거나 이에 상응하는 동작을 생성하기 위해 다른 구문 구조를 이용하여 다른 방식으로 동일한 결과를 얻을 수있는 능력입니다.
이 짧은 기사에서 우리는 원하는 결과가 "1"과 "10"사이의 범위 내에서 모든 숫자를 인쇄할 수있는 간단한 프로그램을 만드는 것입니다 단지 순환이 아닌 토대로 간단한 예제를 소개합니다.
(기사는 아래에 계속됩니다 ...)
다음과 같은 솔루션 :
1,2,3,4,5,6,7,8,9,10을 박았초기 값과 : 우리가 찾고있는 것은 겨우 2 매개 변수를 필요로하는 스크립트입니다;해야 ricrederci 매우 편리 첫눈에 보이지만, 우리의 다양한 경우 ( "1"과 "100"사이라고) 훨씬 큽니다 것입니다 최종 (최소 및 최대) 그 범위를 구분.
이러한 방법으로 사용되는 코드는 또한 아주 출력 생성을 위해 다시 사용할 수 있습니다 "부피가 큰."
우리가 건설 인수로 전달 종료 값에 도달하기 전까지 초기 가치를 높이기 위해 할 각 pemette을 구축, 우리는 예제를 참조하십시오
. 나 | |를 (1 .. 10) 각각 할 을 박았 끝그것이 두 번째 매개 변수 (이 경우 "10"에)에 의해 누웠지 조건에 설립된 것과 동등한 가치에 도달할 때까지 범위에서 매 (각) 값에 숫자를 출력합니다.
변수 증가를 둘러싸 두 개의 세로 막대 ( "| I |")는 "자체에서"값을 나타냅니다로 코드의 나머지로부터 자신을 분리하여 루프 내부의 변수를 구분하는 데 사용됩니다.
같은 결과는 leggermanete를 사용한 구문을 다양하고 입력하는 코드의 양을 "절약"에 의해 달성될 수있다 :
(1 .. 10) 각. {| I |두고 사님
( "{| I | 박았 I}") 실행을 정의하는 두 개의 매개 변수에 기초하여 범위의 각 반복 vaolore 반환 값은 명령을 실행하여 반환됩니다.
다음과 같은 대안은 for 루프의 사용을 기반으로 수 :
에서 I (1 .. 10)에 대한 을 박았 끝또한이 경우에는 우리가 사이클로 합격한 값의 범위를 정의하는 두 매개 변수는 그 변수 "10"값이 사이클의 실행을 종료하는 조건을 나타냅니다 "나는"필요한 10 개의 반복하는 동안 incrementandosi을 추측할 수있다.
하지만 우리의 대안이 완료되지 않은, 어디 코드의 간단한 라인보고하자 :
1.upto (10) {| I | 박았 내가}
rapprentano 숫자 유형되는 개체에 대한 메서드를 최대 개까지,이 방법의 구문은 쓰기 "x.upto (Y)" "에 대한"(에 대해 "입력과 동일한 사실에 I = x, x라고 <대안입니다 = Y, I + +) {...} ".
우리가 반드시 루프에 resorting없이주기의 동일한 결과를 얻을 수있는 "최대 개까지"실제로, 결과는 입력 코드와 명령어를 실행하는 시스템에서 제공하는 자원의 측면에서 절약이다.
지금의이 마지막 예제를 보자 :
*두고 (1 .. 10)지금까지 본 모든 분들의 쉬운을 의심하지 않고 코드 제안서의 마지막 문자열은, 상징의 간단한 사용은 "*"진술 박았에 resorting 않고 인자로 전달되는 범위 내의 모든 값이 인쇄하기 모든 루프 또는 메서드의 호출을 지정할 필요가 있습니다.






