Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Ruby

Giải Thích Phương Thức Ruby: Tạo Custom Function Dễ Dàng

Phương Thức Ruby Là Gì?

Phương thức là một, hoặc nhiều, dòng code Ruby nhóm lại cho mục đích cụ thể. Code nhóm này được đặt tên để dùng khi muốn mà không phải viết lại hoặc copy & paste. Mục đích phương thức có thể:

  • GET thông tin.
  • THAY ĐỔI hoặc TẠO object.
  • LỌC & ĐỊNH DẠNG data.

Ví dụ 1: Phương thức size trên object Array cho count phần tử (get thông tin). Ví dụ 2: Phương thức pop xóa phần tử cuối mảng (thay đổi object). Khi hiểu mối quan hệ object, class & method mọi thứ bắt đầu có nghĩa. Giải Thích Phương Thức Ruby: Tạo Custom Function Dễ Dàng Tiếp tục học!

Cách Định Nghĩa Phương Thức

Ruby có nhiều built-in method mạnh, nhưng bạn cũng tự tạo. Làm sao? Dùng từ khóa def định nghĩa instance method. Cú pháp:

def gimme_bacon
  puts "Bacon plz."
end 

Đang xảy ra gì? 1. def là cú pháp Ruby, nói muốn define method 2. gimme_bacon tên method 3. puts "Bacon plz." body method 4. end kết thúc định nghĩa. Định nghĩa method chỉ báo Ruby muốn tạo. Muốn dùng thì gọi method.

Cách Gọi Phương Thức Trong Ruby

Trong Ruby, khi dùng method, nói là gọi nó. Thường nghe "method call", hoặc nếu làm việc với OOP purist, nghe "you're sending a message". Cách nào cũng được... Xem ví dụ dùng method. Đây:

gimme_bacon 

In ra: "Bacon plz." Gọi method trên object. Ví dụ: n = [1,2,3]; n.size # 3 n.size gọi method size trên object n, là Array. Kết quả? Nhận size mảng.

Phương Thức Nào Available?

Phụ thuộc class của object bạn gọi method. Array có method khác hash. Check Ruby doc tìm list method cho class cho trước.

Trả Giá Trị Từ Phương Thức

Khái niệm quan trọng Ruby: TẤT CẢ method trả giá trị. Giải thích! Kết quả gọi method, bạn nhận được gì đó. "Cái gì đó" này đến từ biểu thức cuối cùng trong định nghĩa method. Cái tôi nói:

def number_one
  1
end
number_one # 1 

Ví dụ khác:

def add(x,y)
  x + y
end
add(5, 6) # 11 

Gọi "implicit return", tên fancy cho "tự động trả cái cuối". Thêm vào đó: Bạn bảo Ruby return gì đó với từ khóa.

def two
  return 2
end
# 2 
Chú ý method dừng chạy khi dùng return. Dùng cho early return hoặc thoát loop.

Tại Sao Có Dấu Hỏi Trong Tên Phương Thức?

Bạn thấy method Ruby lạ. Tên như: empty?, sort!, title=. TẤT CẢ đều tên method hợp lệ. Dấu hỏi, dấu chấm than, dấu bằng nghĩa gì? Là convention cộng đồng Ruby. Giải thích:

  • Method dấu hỏi (predicate method) nên trả true hoặc false
  • Method dấu chấm than nói nó làm khác version không dấu chấm than. Thường liên quan thay đổi object itself, như add/xóa phần tử. Còn gọi "bang methods".
  • Dấu bằng method nghĩa là assignment. Dùng gán giá trị cho instance variable

Không convention nào bị enforce bởi ngôn ngữ. Nhưng... Nếu tuân thủ, bạn viết code Ruby-like hơn!

Tóm Tắt

Bạn đã học sức mạnh phương thức Ruby, cách định nghĩa, dùng & tuân thủ convention đúng. Bây giờ lượt bạn áp dụng 🙂 Cảm ơn bạn đã đọc!