Computer >> Máy Tính >  >> Lập trình >> Ruby

Hiểu các giá trị Boolean trong Ruby

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
& 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.