[루비] 팩스 능력을 강화하는 기본 기교

4056 단어 Ruby
좀 쑥스럽긴 하지만 최근까지'예쁜 코드를 써라'는 말에 조건반사로'오류 없으면 되잖아'내 생각엔
하지만 팩스라는 단어를 이해하면서 몇 가지 기법과 방법을 접하는 과정에서 아름다운 코드가 아름답다고 생각했다. 그래서 기본적인 팩스 사례를 소개하려고 한다.

이번에 설정한 입력과 출력


1부터 5까지의 연속 배열의 합계를 출력합니다.(정답은 15)
나는 이것을 어떻게 멋지게 기술하고 도출하는지 도전하고 싶다.

밀치다

p 1 + 2 + 3 + 4 + 5
프로그램입니까, 계산기입니까?등급의 가장 간단한 설명.물론 1∼100을 계산한 숫자의 합계 등에 대응할 수 없기 때문에 주의해야 한다.
확장성 있게 하려고요.

둘째, 배열과 each 문장 사용

numbers = [1,2,3,4,5]
sum = 0 #変数sumに0を代入
 numbers.each do |n|
   sum += n #変数sumにブロック変数nを繰り返し足しこむ
 end
p sum
이것은 아마도 each문에서 가장 먼저 배우기 시작한 코드일 것이다.프로그래밍이지만 "배열 요소가 1,2,3으로 쓰여져서... 귀찮다", "each 글 주변에 몇 줄이나 짜임새가 있어야 한다"는 마음이 밀려왔다.

셋째, 영역 대상과 {}의 블록 표기 방법으로 간단하게

numbers = (1..5) #範囲オブジェクトの作成。1~5までの値が連続する配列を意味する。
sum = 0
  numbers.each {|n| sum += n } #{}のブロック記法で1行に収める。
p sum
(첫 번째 값. 마지막 값)로 값의 범위를 나타낼 수 있습니다.
※ 범위 대상은 레인지 클래스입니다.
※ 참고로 (최초 값...마지막 값)라고 적으면 마지막 값이 포함되지 않습니다.둥근 점.수량
또한 each문의 Do·end까지 {}로 대체할 수 있는 기간도 있습니다.
※ 도·end 앞에서는'사각형'으로 불리며 추출요소를 처리하는'작업실'역할을 합니다.
상당히 상쾌해졌다.하지만 숨 좀 더 쉬어!

넷째: each 대신 inject 방법을 사용합니다

numbers = (1..5)
 p sum = numbers.inject(0) {|n, s| n + s}
  #injectメソッドは下記の流れで動く。
  #メソッドの第1引数が、ブロックの第1引数に入る。
  #ブロックの第2引数には、配列の各要素が順番に入る。
  #ブロックの戻り値が、ブロックの第1引数に引き継がれる。
  #繰り返し処理が終わると、ブロックの戻り値がinjectメソッドの戻り値となる。
inject 방법을 사용하면 여러 개의 매개 변수를 처리할 수 있으며, 매개 변수를 두 줄에 저장할 수 있습니다.
앞으로는 양작으로 알려진'리더 블러드'를 읽으면서 가슴을 펴는 예쁜 코드를 쓰도록 노력하겠다.
"이렇게 쓰는 것이 더 간결하다."만약 이런 의견이 있다면 꼭 저에게 알려주세요!

좋은 웹페이지 즐겨찾기