Accessors trong ruby
Bài đăng này đã không được cập nhật trong 7 năm
Đối với một lập trình viên, getter
và setter
là các method rất quan trọng để truy cập và xử lý các thuộc tính của 1 class. Ở ruby, việc truy cập này được gọi chung là accessors
. accessors
gồm có readers
và writers
.
Dưới đây là 1 cách dễ hiểu về chúng:
class Fruit
def set_kind k
@k = k #writers
end
def get_kind
@k #readers
end
end
fruit = Fruit.new #><Fruit:0x000000023fc490>
fruit.set_kind :apple
puts fruit.get_kind #>apple
Với ruby, ta có thể định nghĩa readers
và writers
một cách tiện lợi hơn để sử dụng như sau:
class Fruit
def kind=(k)
@k = k
end
def kind
@k
end
end
fruit = Fruit.new #<Fruit:0x000000008dc098>
fruit.kind="banana" #>banana
Để giải quyết việc các biến instance cần nhiều hàm accessors
, ruby cung cấp shortcut attr_accessor
để thay thế việc ta phải khai báo hàm writers
và readers
.
Cách sử dụng shortcut:
class Fruit
attr_accessor :kind, :animal
def wow
"#{animal} eating #{kind}"
end
end
f = Fruit.new
f.animal = "Rabbit"
f.kind = "carrot"
f.wow #>Rabbit eating carrot
Hy vọng bài viết của mình có thể giúp các bạn mới học về ruby không bị bỡ ngỡ về ngôn ngữ này !
All rights reserved