Giới thiệu về hàm Module#module_function
Bài đăng này đã không được cập nhật trong 7 năm
Trong Ruby, có 2 cách sử dụng method của module. Cách thứ nhất là 'nhúng' (mixin) - dùng như instance method và cách thứ hai là dùng theo kiểu module function. Ví dụ: Mixin:
module MyWords
def hello
puts "Hello world"
end
end
class HelloWorld
include MyWords
end
HelloWorld.new.hello # => Hello world
Các bạn có thể thấy là hàm #hello được gọi thông qua object của HelloWorld. Đây là cách phổ biến mà người viết Ruby hay dùng để chia sẻ code giữa các class với nhau thay vì dùng class inheritance.
Module functions: Tương tự như cách sử dụng class methods, module cho phép gọi hàm với receiver là module. Ví dụ:
module MyWords
def hello
puts "Hello world"
end
module_function :hello
end
class HelloWorld
include MyWords
end
HelloWorld.new.hello # => Hello world
MyWords.hello # => Hello world
Ruby cung cấp hàm trên với param là tên của method bạn muốn biến thành module_function. Còn rất nhiều các hàm khác của Ruby giúp rút ngắn và làm code súc tích và dễ hiểu hơn. Mình sẽ tìm hiểu và viết một số bài tương tự trong thời gian tới.
All rights reserved