0Pricing
Ruby Academy · บทเรียน

ค่าความจริงใน Ruby

nil และ false

ค่าความจริงใน Ruby เป็นบทเรียน Ruby Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ruby Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ruby Academy มีบทเรียนทั้งหมด 4 บทเรียน

ความเป็นจริงคืออะไร

ในเงื่อนไข Ruby ไม่ได้กำหนดให้ต้องใช้ค่าบูลีนอย่างเคร่งครัด ค่าทุกค่าจะถูกจัดว่าเป็นจริงหรือเท็จ การทราบกฎนี้ช่วยป้องกันข้อผิดพลาดที่สังเกตได้ยาก

if "hello"
  puts "Strings are truthy"
end

มีค่าเท็จเพียงสองค่า

กฎของ Ruby เรียบง่ายอย่างน่าพอใจ: มีเพียง false และ nil ที่เป็นค่าเท็จ ค่าอื่นทั้งหมดเป็นค่าจริง

puts "nil is falsy" unless nil
puts "false is falsy" unless false

ศูนย์เป็นค่าจริง

ต่างจากหลายภาษา 0 เป็นค่าจริงใน Ruby เช่นเดียวกับสตริงว่างและอาร์เรย์ว่าง โปรดระวังหากคุณเคยใช้ C หรือ Python มาก่อน

if 0
  puts "0 is truthy in Ruby"
end
if ""
  puts "empty string is truthy too"
end

ทำความรู้จัก nil

nil แทนการไม่มีค่า เมธอดมักส่งคืน nil เมื่อไม่มีสิ่งใดให้ส่งกลับ เช่น เมื่อไม่พบคีย์ในแฮช

user = { name: "Ada" }
puts user[:email].inspect  # missing key returns nil

การตรวจสอบ nil

ใช้ nil? เพื่อตรวจสอบโดยตรง โดยจะส่งคืน true เฉพาะเมื่อเป็น nil เท่านั้น

x = nil
y = 0
puts x.nil?
puts y.nil?

ตัวดำเนินการ &&

&& จะส่งคืนตัวถูกดำเนินการตัวแรกที่เป็นค่าเท็จ หรือส่งคืนตัวถูกดำเนินการตัวสุดท้ายหากทุกตัวเป็นค่าจริง การประเมินจะหยุดลงทันที: ด้านขวาจะไม่ถูกประเมินหากด้านซ้ายเป็นค่าเท็จ

puts (nil && "never").inspect
puts ("a" && "b").inspect

ตัวดำเนินการ ||

|| จะส่งคืนตัวถูกดำเนินการตัวแรกที่เป็นค่าจริง จึงเหมาะอย่างยิ่งสำหรับค่าปริยาย

name = nil
display = name || "Guest"
puts display

การกำหนดค่าแบบมีเงื่อนไข ||=

a ||= b จะกำหนดค่า b ให้ a ก็ต่อเมื่อขณะนั้น a เป็น nil หรือ false เท่านั้น นี่คือวิธีกำหนดค่าปริยายตามสำนวนของ Ruby

config = {}
config[:timeout] ||= 30
config[:timeout] ||= 99  # already set, ignored
puts config[:timeout]

ระวังค่าเริ่มต้นที่เป็นเท็จ

เนื่องจาก false เป็นค่าเท็จ || จึงอาจเขียนทับค่า false ที่ถูกต้องตามความหมายได้ เมื่อ false มีความหมายสำคัญ ให้ตรวจสอบด้วย nil? แทน

enabled = false
result = enabled || true   # oops, becomes true
puts result
safe = enabled.nil? ? true : enabled
puts safe

ตัวดำเนินการนำทางอย่างปลอดภัย

&. จะเรียกใช้เมธอดก็ต่อเมื่อออบเจ็กต์ตัวรับไม่ใช่ nil มิฉะนั้นจะส่งคืน nil แทนการทำให้เกิดข้อผิดพลาด

name = nil
puts name&.upcase.inspect  # no NoMethodError
name = "ruby"
puts name&.upcase

นำทุกอย่างมาประกอบกัน

กฎเรื่องค่าความเป็นจริงช่วยให้คุณเขียนโค้ดที่สื่อความหมายและกระชับได้ แต่โปรดคำนึงถึงกรณีพิเศษด้วย:

  • มีเพียง nil และ false ที่เป็นค่าเท็จ
  • 0, "" และ [] ล้วนเป็นค่าจริง
  • ใช้ nil? เมื่อค่า false จริง ๆ มีความสำคัญ
values = [0, "", [], nil, false]
values.each do |v|
  puts "#{v.inspect} => #{v ? "truthy" : "falsy"}"
end

ตรวจสอบอย่างรวดเร็ว

ทดสอบความเข้าใจเรื่องค่าความเป็นจริงใน Ruby

สรุปทบทวน

คุณได้เรียนรู้เรื่องค่าความเป็นจริงใน Ruby:

  • มีเพียง nil และ false ที่เป็นค่าเท็จ
  • nil? ใช้ตรวจสอบ nil โดยตรง
  • && และ || ส่งคืนตัวถูกดำเนินการและหยุดการประเมินเมื่อรู้ผลแล้ว
  • ||= ใช้กำหนดค่าปริยาย ส่วน &. ช่วยป้องกันการเรียกใช้เมธอดกับตัวรับที่เป็น nil
username = nil
username ||= "anonymous"
puts "Welcome, #{username}"

คำถามที่พบบ่อย

บทเรียน “ค่าความจริงใน Ruby” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ค่าความจริงใน Ruby” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ruby Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ruby Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ค่าความจริงใน Ruby”

nil และ false คุณปฏิบัติ Ruby Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ruby Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ruby Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “ค่าความจริงใน Ruby” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Ruby Academy นี้ได้ไหม

ได้ บทเรียน Ruby Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. if, unless, ternary
  2. นิพจน์ case/when
  3. ค่าความจริงใน Ruby
  4. ประโยคเงื่อนไขป้องกัน
← กลับไปที่ Ruby Academy