Tìm hiểu về nil? vs blank? vs empty? vs present? trong Ruby on Rails

Vấn đề : Bạn thường xuyên phải kiểm tra xem một đối tượng có rỗng không. Và khi bạn tìm kiếm sẽ ra rất nhiều cách thức kiểm tra, và bạn không hiểu chính xác thì “rỗng” nghĩa là gì? Vâỵ cùng tìm hiểu về các cách thức kiểm tra này nhé !!! Sử dụng

Vấn đề :

Bạn thường xuyên phải kiểm tra xem một đối tượng có rỗng không. Và khi bạn tìm kiếm sẽ ra rất nhiều cách thức kiểm tra, và bạn không hiểu chính xác thì “rỗng” nghĩa là gì?
Vâỵ cùng tìm hiểu về các cách thức kiểm tra này nhé !!!

Sử dụng If trong trường hợp này có liệu đã đủ ???

if false hoặc if nil sẽ không thực hiện điều kiện tương ứng, bởi vì false và nil được coi là giá trị sai.

Nói cách khác nếu bạn ép kiểu nil hoặc false là boolean, nó sẽ trả về false. Mọi loại giá trị khác đều được coi là true trong Ruby . Điều nảy xảy ra không chỉ dành riêng cho Ruby, nó còn hoạt động với JavaScript.

nil? trong Ruby và kiểm tra đối tượng có nil?

Thật dễ dàng, trong Ruby bạn có thể kiểm tra xem một đối tượng có phải là nil hay không, chỉ bằng cách gọi nil? trên đối tượng … ngay cả khi đối tượng là con số không 😀

Lưu ý: trong Ruby theo quy ước thì mọi phương thức kết thúc bằng dấu chấm hỏi đều được thiết kế để trả về boolean (true hoặc false). Trong JavaScript, quy ước lại khác: thường loại phương thức này bắt đầu bằng “is” (isEmpty, isNumeric, v.v.)

.empty? trong Ruby, dùng để kiêm tra xem size có bằng 0 hay không ???

.empty? là một phương thức Ruby, chỉ hoạt động với Hash, Array hoặc String. Nhưng không phải cho mọi Enumerable. Nó trả về true nếu kích thước size lớn hơn 0. Đối với những trường hợp khác nó trả về một NoMethodError.

.blank? từ ActiveSupport trong Rails

ActiveSupport là tập hợp các hàm tiện ích được Rails nhúng thẳng vào lớp của thư viện chuẩn của Ruby (như Array, String, Hash), và .blank? được định nghĩa trong ActiveSupport, vì vậy nếu bạn đang ở trong môi trường Rails, bạn sẽ được sử dụng nó mà không phải khai báo thêm gì.

NoMethodError ở trên có thể gây khó chịu. Vì vậy method .blank? được thêm vào ActiveSupport.

Một đối tượng là blank khi nó nil hoặc false , ngoài ra Array và Hash là blank khi chúng là empty.

.present? từ ActiveSupport trong Rails

.present? sẽ là phủ định của blank?

kết luận

Để ghi nhớ ở đây tôi sẽ tạo 1 bảng như sau

Bài viết còn sơ sài do là bài đâu tiên mình chia sẻ , cảm ơn bạn đã đọc .

Nguồn: viblo.asia

Bài viết liên quan

WebP là gì? Hướng dẫn cách để chuyển hình ảnh jpg, png qua webp

WebP là gì? WebP là một định dạng ảnh hiện đại, được phát triển bởi Google

Điểm khác biệt giữa IPv4 và IPv6 là gì?

IPv4 và IPv6 là hai phiên bản của hệ thống địa chỉ Giao thức Internet (IP). IP l

Check nameservers của tên miền xem website trỏ đúng chưa

Tìm hiểu cách check nameservers của tên miền để xác định tên miền đó đang dùn

Mình đang dùng Google Domains để check tên miền hàng ngày

Từ khi thông báo dịch vụ Google Domains bỏ mác Beta, mình mới để ý và bắt đầ