Ruby - Trình lặp lại
Trình lặp không là gì ngoài các phương thức được hỗ trợ bởi các bộ sưu tập . Các đối tượng lưu trữ một nhóm thành viên dữ liệu được gọi là tập hợp. Trong Ruby, mảng và băm có thể được gọi là tập hợp.
Các trình lặp trả về tất cả các phần tử của một tập hợp, cái này đến phần tử khác. Chúng ta sẽ thảo luận về hai trình vòng lặp ở đây, mỗi trình lặp và thu thập . Hãy xem xét những điều này một cách chi tiết.
Ruby từng Iterator
Mỗi trình lặp trả về tất cả các phần tử của một mảng hoặc một hàm băm.
Cú pháp
collection.each do |variable|
code
end
Thực thi mã cho mỗi phần tử trong bộ sưu tập . Ở đây, tập hợp có thể là một mảng hoặc một băm ruby.
Thí dụ
#!/usr/bin/ruby
ary = [1,2,3,4,5]
ary.each do |i|
puts i
end
Điều này sẽ tạo ra kết quả sau:
1
2
3
4
5
Bạn luôn liên kết mỗi trình lặp với một khối. Nó trả về từng giá trị của mảng, từng giá trị một, cho khối. Giá trị được lưu trữ trong biếni và sau đó hiển thị trên màn hình.
Trình thu thập Ruby
Trình lặp thu thập trả về tất cả các phần tử của một tập hợp.
Cú pháp
collection = collection.collect
Các thu thập phương pháp không cần phải luôn luôn được gắn liền với một khối. Các thu thập phương thức trả về toàn bộ bộ sưu tập, bất kể cho dù đó là một mảng hoặc một băm.
Thí dụ
#!/usr/bin/ruby
a = [1,2,3,4,5]
b = Array.new
b = a.collect
puts b
Điều này sẽ tạo ra kết quả sau:
1
2
3
4
5
NOTE- Phương thức thu thập không phải là cách thích hợp để thực hiện việc sao chép giữa các mảng. Có một phương thức khác được gọi là bản sao , nên được sử dụng để sao chép một mảng này sang một mảng khác.
Bạn thường sử dụng phương thức thu thập khi bạn muốn làm điều gì đó với mỗi giá trị để nhận được mảng mới. Ví dụ, mã này tạo ra một mảng b chứa 10 lần mỗi giá trị trong a .
#!/usr/bin/ruby
a = [1,2,3,4,5]
b = a.collect{|x| 10*x}
puts b
Điều này sẽ tạo ra kết quả sau:
10
20
30
40
50