..
온라인 강좌
  • 페이스 북에 우리를 따르라
  • 트위터에 우리를 따르라
  • + Google에 우리를 따르라
  • RSS를 통해 우리를 따르라
  • 귀하의 스마트폰으로 우리를 따라

루비의 문법 대안

가 작성한 기사 클라우디오 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 않고 인자로 전달되는 범위 내의 모든 값이 인쇄하기 모든 루프 또는 메서드의 호출을 지정할 필요가 있습니다.

코스
코스 루비와 레일에 루비 코스 루비와 레일에 루비
루비와 RoR로 소프트웨어와 웹 애플 리케이션을 생성. 49 €부터 시작.
참고 ...
광고

cpclubpenguincheatscp.com

광고
회사 소개
미국의 소리 접촉하기
공동 작업
면책 조항
© 2003년에서 2012년까지 cpclubpenguincheatscp.com - 이탈리아 웹마 스터의 포털 - 판권 소유 |에 의해 구동 인터넷 미디어 IKIweb Srl - PIVA 02848390122