Boolean là gì?
Boolean là một giá trị được sử dụng trong một câu lệnh logic để cho biết điều gì đó được coi là đúng hay sai.
Điều này có thể được sử dụng để đưa ra quyết định .
Trong Ruby, chúng tôi không có lớp Boolean, nhưng chúng tôi có các đối tượng boolean!
Chúng tôi có true
&false
.
Đó là các đối tượng singleton của TrueClass
&FalseClass
.
Bạn nhận được giá trị boolean khi sử dụng các phương pháp như :
-
empty?
-
all?
-
match?
Và so sánh mọi thứ bằng dấu bằng :
1 == 1 # true
Hãy nhớ rằng ==
trong Ruby cũng là một phương thức, điều này có nghĩa là hành vi có thể thay đổi tùy thuộc vào cách phương thức này được triển khai.
Giá trị trung thực &giả dối
Giá trị trung thực là gì?
Đó là giá trị được coi là true
trong ngữ cảnh boolean, như câu lệnh if.
Mọi thứ trong Ruby đều là sự thật nhưng hai điều này :
-
false
-
nil
Hai giá trị này và CHỈ có hai giá trị này, chúng tôi gọi là "giả".
Booleans trong thực tế
Điều này có nghĩa là nếu bạn có điều kiện…
Như thế này :
if bacon puts "we got bacon" end
Ruby kiểm tra xem bacon
là sự thật (bất cứ điều gì ngoại trừ false
/ nil
) trước khi in chuỗi.
Nói cách khác :
Bạn không phải kiểm tra nil nếu bạn không gọi một phương thức trên bacon
.
Công cụ điều hướng an toàn
Đôi khi bạn muốn gọi một phương thức trên đối tượng.
Như thế này :
if bacon.stock # ... end
Điều này sẽ cung cấp cho bạn một lỗi nếu bacon
là con số không, để tránh điều này, bạn có thể làm như sau…
Ví dụ :
if bacon&.stock # ... end
&.
này được gọi là toán tử điều hướng an toàn và nó đã được giới thiệu trong Ruby 2.3.
Phương thức Boolean
Bạn đã thấy các phương thức này kết thúc bằng dấu chấm hỏi chưa?
Thích empty?
.
Chúng tôi gọi đây là “các phương thức vị từ” và theo quy ước, chúng luôn trả về true
hoặc false
.
Bạn có thể viết của riêng mình :
def published? # ... end def ready? # ... end
Đây là một mẫu tuyệt vời sẽ làm cho mã của bạn giống Ruby hơn.
Tham số Boolean không phải là một ý tưởng tốt
Chúng tôi vừa đề cập đến các phương thức boolean, phương thức này rất hay, nhưng bạn muốn tránh là các tham số boolean.
Ví dụ :
def bacon(raw) end bacon(false)
Khi bạn nhìn vào bacon(false)
bạn không biết điều này false
nghĩa là.
Bạn sẽ phải đào sâu vào mã để tìm hiểu.
Trên hết, giá trị boolean có nghĩa là phương pháp của bạn sẽ phức tạp hơn mức cần thiết .
Giải pháp?
Chia phương pháp làm hai hoặc thiết kế mã của bạn theo cách không cần thiết.
Boolean Logic
TrueClass &FalseClass triển khai một số phương pháp.
Thích to_s và kiểm tra.
Nhưng thú vị hơn là :
-
&
-
|
-
^
Những phương pháp trông kỳ lạ này là gì?
Logic Boolean.
Đây là bảng logic boolean :
Tên | Biểu tượng | TRUE / TRUE | TRUE / FALSE |
---|---|---|---|
VÀ | & | true | false |
HOẶC | | | true | true |
XOR | ^ | false | true |
Ví dụ :
true & true
Mặc dù chúng ta thường không sử dụng logic boolean trong mã của mình, nhưng nó tạo nền tảng cho cách máy tính hoạt động, vì vậy, thật thú vị khi biết về nó.
Tóm tắt
Bạn đã học về các giá trị boolean trong Ruby! Hãy nhớ rằng mọi thứ đều là "sự thật", với ngoại lệ duy nhất là false
&nil
.
Đừng quên chia sẻ bài viết này để nhiều người có thể tìm thấy nó 🙂
Cảm ơn vì đã đọc.