Ruby 生日快乐法——简单方法

Ruby 生日快乐法——简单方法,ruby,Ruby,通过将第一种方法合并到第二种方法中,我可以使第二种代码方法更简单吗 def happy_birthday(birthday_kids) # add your code snippet here! birthday_kids.each do |kids_name, age| puts "Happy Birthday #{kids_name}! You are now #{age} years old!" end end def age_appropriate_birthday

通过将第一种方法合并到第二种方法中,我可以使第二种代码方法更简单吗

def happy_birthday(birthday_kids)
  # add your code snippet here!
  birthday_kids.each do |kids_name, age|
    puts "Happy Birthday #{kids_name}! You are now #{age} years old!"
  end
end

def age_appropriate_birthday(birthday_kids)
  birthday_kids.each do |kid,age|
    if age < 13 
      puts "Happy Birthday #{kid}! You are now #{age} years old!"
    else
      puts "You are too old for this."
    end 
  end 
end
def生日快乐(孩子们生日快乐)
#在这里添加您的代码片段!
孩子们生日。每个孩子的名字、年龄|
写上“生日快乐{孩子们的名字}!你现在{age}岁了!”
结束
结束
定义年龄适当的生日(儿童生日)
孩子们过生日。每个孩子都过生日|
如果年龄<13岁
写上“生日快乐{kid}!你现在{age}岁了!”
其他的
写着“你太老了,不能这样做。”
结束
结束
结束

似乎对第二种方法稍加修改就可以满足您的需要

def happy_birthday(birthday_kids, age_appropriate = false)
  birthday_kids.each do |kid,age|
    if (age < 13 || !age_appropriate) 
      puts "Happy Birthday #{kid}! You are now #{age} years old!"
    else
      puts "#{kid} you are too old for this."
    end 
  end 
end
def生日快乐(孩子生日,适合的年龄=false)
孩子们过生日。每个孩子都过生日|
如果(年龄<13岁,年龄合适)
写上“生日快乐{kid}!你现在{age}岁了!”
其他的
放上“#{kid}你太老了,不能这样做。”
结束
结束
结束
如果这个方法是一个类的一部分,那么这个类本身就可以保存关于它应该如何迎接的信息

class BirthdayGreeter
  def initialize(age_appropriate = false)
    @age_appropriate = age_appropriate
  end

  def happy_birthday(birthday_kids)
    birthday_kids.each do |kid,age|
      if (age < 13 || !@age_appropriate) 
        puts "Happy Birthday #{kid}! You are now #{age} years old!"
      else
        puts "#{kid} you are too old for this."
      end
    end 
  end 
end


greeter = BirthdayGreeter.new
greeter_age_appropriate = BirthdayGreeter.new(true)

greeter.happy_birthday(kids)
greeter_age_appropriate.happy_birthday(kids)
班级生日迎宾员
def初始化(年龄=错误)
@适当年龄=适当年龄
结束
def生日快乐(孩子们生日快乐)
孩子们过生日。每个孩子都过生日|
如果(年龄<13 | |!@年龄|合适)
写上“生日快乐{kid}!你现在{age}岁了!”
其他的
放上“#{kid}你太老了,不能这样做。”
结束
结束
结束
结束
问候者=生日问候者
迎宾员\年龄\合适=生日迎宾员。新(真)
迎宾员生日快乐(孩子们)
迎宾员年龄合适。生日快乐(孩子们)

有很多方法可以做到这一点

一种只改变一行代码的方法是:

if age < 13 
  happy_birthday([[kid, age]].to_h)

我假设您不想修改您的
happy_birth
方法。如果您同意这样做,那么nPn提供的方法也适用。

欢迎使用!请调查什么标签被定义为,而不是附加它们威利·尼利。是Hascal语言的YACC解析器生成器,与您的问题无关。哦,对不起!我本来想删除的,但是我分心了,忘了删除。谢谢你。我是学习ruby的新手,希望了解如何将方法合并在一起以实现简单性,这对我帮助很大。
def age_appropriate_birthday(birthday_kids)
  young, old = birthday_kids.parititon { |name, age| age < 13 }
  happy_birthday(young)
  old.each { |name, age| puts "#{kid} you are too old for this." }
end