🌿 What?

  • 🌱 Từ vesion 3.0, Ruby cho phép định nghĩa những method đơn giản trên cùng một dòng giống endless condition.
def isMan?(sex) = sex == 'man'
 
# isMan('man') => true
# isMan('female') => false
 
------------------------------------------------
 
# Method Setter không áp dụng được syntax này.
class A
  def attr=(val) = @attr = val
end
# => SyntaxError "setter method cannot be defined in an endless method definition"
 
------------------------------------------------
 
# Có thể  viết được nhiều dòng
def read(name) = File.read(name)
                     .split("\n")
                     .map(&:strip)
                     .reject(&:empty?)
                     .uniq
                     .sort
  • 🌱 Ruby 3.0, endless method cần phải viết đầy đủ dấu ngoặc (, ), {, }. Vấn đề này đã được cải thiện ở version 3.1
def log = puts "logging"
# 3.0: syntax error, unexpected string literal, expecting `do' or '{' or '('
# 3.1: successfully defined

🌿 Refer