Computer >> Máy Tính >  >> Lập trình >> Ruby

Cách sử dụng Phương pháp bản đồ Ruby (Có ví dụ)

Bản đồ là một phương thức Ruby mà bạn có thể sử dụng với Mảng, Băm &Dải.

Công dụng chính của bản đồ là CHUYỂN ĐỔI dữ liệu.

Ví dụ :

Với một mảng chuỗi, bạn có thể xem qua mọi chuỗi và làm cho mọi ký tự UPPERCASE.

Hoặc nếu bạn có danh sách User đối tượng…

Bạn có thể chuyển đổi chúng vào danh sách địa chỉ email, số điện thoại tương ứng hoặc bất kỳ thuộc tính nào khác được xác định trên User lớp học.

Hãy xem chính xác cách thực hiện việc này!

Cú pháp bản đồ Ruby

Cú pháp cho bản đồ trông giống như sau:

array = ["a", "b", "c"]

array.map { |string| string.upcase }

# ["A", "B", "C"]

Đầu tiên, bạn có một mảng, nhưng nó cũng có thể là một hàm băm hoặc một dải ô.

Sau đó, bạn gọi map với một khối.

Khối này nằm giữa dấu ngoặc nhọn { ... } . Bên trong khối, bạn nói CÁCH bạn muốn biến đổi mọi phần tử trong mảng. Về cơ bản, nó là một chức năng.

Điều gì xảy ra sau khi bạn gọi map ?

Bản đồ trả về một mảng mới với kết quả.

Nó sẽ không thay đổi bản gốc.

Nếu bạn muốn thay đổi mảng ban đầu, bạn có thể sử dụng map! .

Ví dụ về bản đồ Ruby

Dưới đây là một số ví dụ mà bạn có thể thấy hữu ích.

Nhân đôi số :

array = [1,2,3]

array.map { |n| n * 2 }
# [2, 4, 6]

Chuyển đổi chuỗi thành số nguyên :

array = ["11", "21", "5"]

array.map { |str| str.to_i }
# [11, 21, 5]

Chuyển đổi giá trị băm thành biểu tượng :

hash = { bacon: "protein", apple: "fruit" }

hash.map { |k,v| [k, v.to_sym] }.to_h
# {:bacon=>:protein, :apple=>:fruit}

Về ví dụ băm này:

Bạn sẽ thấy rằng chúng ta có hai đối số thay vì một, đó là bởi vì phần tử băm bao gồm khóa &giá trị.

Sau đó, tôi đang trả về một mảng mới với khóa &giá trị đã chuyển đổi.

Bước cuối cùng là chuyển đổi giá trị này trở lại thành hàm băm.

Bản đồ Ruby so với Mỗi bản đồ

Sự khác biệt giữa bản đồ &mỗi bản đồ là gì?

Mỗi giống như một phiên bản bản đồ nguyên thủy hơn

Nó cung cấp cho bạn mọi yếu tố để bạn có thể làm việc với nó, nhưng nó không thu thập kết quả.

Mỗi luôn trả về đối tượng ban đầu, không thay đổi .

Trong khi bản đồ làm điều tương tự, nhưng…

Nó trả về một mảng mới với các phần tử đã chuyển đổi.

Ví dụ :

array.each { |n| n * 2 }
# [1, 2, 3]

array.map { |n| n * 2 }
# [2, 4, 6]

Bản đồ Ruby so với Thu thập

Bản đồ và Thu thập là cùng một phương pháp.

Chúng là những tên khác nhau cho cùng một thứ!

Bạn nên sử dụng cái nào?

Nếu bạn đọc các dự án nguồn mở, bạn sẽ thấy rằng phiên bản phổ biến nhất là map .

Sử dụng cái đó.

Cách sử dụng bản đồ có chỉ mục

Nếu bạn cần một chỉ mục với các giá trị của mình, bạn có thể sử dụng with_index phương pháp.

Đây là một ví dụ :

array = %w(a b c)

array.map.with_index { |ch, idx| [ch, idx] }

# [["a", 0], ["b", 1], ["c", 2]]

Mẹo thưởng :

Bạn có thể chuyển một tham số cho with_index nếu bạn không muốn bắt đầu từ chỉ số 0.

Bản đồ Ruby viết tắt (bản đồ &)

Bạn có thể sử dụng phiên bản viết tắt cho map khi bạn đang gọi một phương thức không cần bất kỳ đối số nào .

Ví dụ :

["11", "21", "5"].map(&:to_i)

Ví dụ :

["orange", "apple", "banana"].map(&:class)

Cú pháp &này không giới hạn ở map , nó cũng có thể được sử dụng với các phương thức liệt kê khác.

Bản đồ tư duy phương pháp bản đồ

Cách sử dụng Phương pháp bản đồ Ruby (Có ví dụ)

Hướng dẫn bằng video

Tóm tắt

Bạn đã tìm hiểu về phương pháp bản đồ Ruby và cách sử dụng nó! Bạn cũng đã tìm hiểu về sự khác biệt giữa mỗi thứ, bản đồ và bộ sưu tập.

Nếu bạn thích bài viết này, hãy chia sẻ nó với những người bạn Ruby của bạn 🙂

Cảm ơn vì đã đọc!