# 루비 점점 흥미로워진다. 파이썬보다 훨씬 매력적인 언어라고 생각한다.
code block
1. block + function
4.times() {code}
5.times() {|i| puts i} # 0부터 4까지 코드 반복
a= 3
a.upto() {code}
2. block + iteration
5.times() {|i| puts i}
i =0
while i <5
puts i
i += 1
end
- 같은 결과를 갖는 코드. 위의 코드가 직관적이고 코드양도 적으며 여러가지 간섭, 영향받을 가능성이 더 적다. 사실 times 코드를 뜯어보면 반복문 함수가 들어있으므로 while을 이해하는 것이 중요.
- 짧은 반복정도는 첫번째 코드 사용이 권장되지만, 이것외에는 다목적 사용에 한계가 있고 두번째는 다목적으로 사용가능하다.
- trade off. 두개 코드 장단점 서로 다름 좋은 선택은 개발자의 몫임을 잊지말자.
2. block + Array
>1번
["A", "b", "C"].each() {|i| puts i.downcase()}
- 더 직관적임
>2번
arr = ["A", "b", "C"]
for i in arr
puts value
end
- 목표가 좀 더 분명하게 드러남
arr = [1,2,56,13,7,52]
arr.delete_if() {|i| i > 7}
puts arr
>> output
1
3
7
- block이 여러줄인 경우 do end 권장.
1줄이면 { } 권장
arr = [1,2,56,13,7,52]
arr.delete_if() do|i|
i > 7
end
puts arr