Ruby 试图找出什么';这个密码有什么问题

Ruby 试图找出什么';这个密码有什么问题,ruby,Ruby,我想不出解决办法 class Person def initialize(name) @name = name end def greet(other_name) @other_name print "Hi #{@other_name}, my name is #{@name}" end end kit = Person.new("Tom", "Jerry") kit.greet 如果您能伸出援助之手,我将不胜感激。在initialize方法中,您应

我想不出解决办法

class Person
  def initialize(name)
    @name = name
  end

  def greet(other_name)
    @other_name
    print "Hi #{@other_name}, my name is #{@name}"
  end
end

kit = Person.new("Tom", "Jerry")
kit.greet

如果您能伸出援助之手,我将不胜感激。

在initialize方法中,您应该使用两个参数,因为您使用两个参数调用它。您在
greet
函数中声明了
@other_name
变量,而不是
initialize
函数

这会奏效的

class Person 
  def initialize(name, other_name) 
    @name = name
    @other_name = other_name
  end

  def greet 
    print "Hi #{@other_name}, my name is #{@name}" 
  end 
end

kit = Person.new("Tom", "Jerry") 
kit.greet

你必须做出决定:

您想在初始化
人员时同时提供两个姓名吗

class Person
  def initialize(name, other)
    @name = name
    @other = other
  end

  def greet
    puts "Hi #{@other}, my name is #{@name}"
  end
end

kit = Person.new("Tom", "Jerry")
kit.greet
#=> Hi Jerry, my name is Tom
或者在调用
greet
方法时是否要提供第二个名称:

class Person
  def initialize(name)
    @name = name
  end

  def greet(other)
    puts "Hi #{other}, my name is #{@name}"
  end
end

kit = Person.new("Tom")
kit.greet("Jerry")
#=> Hi Jerry, my name is Tom

考虑这样编写代码:

class Person
  attr_reader :name

  def initialize(name)
    @name = name
  end

  def greet(person)
    puts "Hi #{person.name}, my name is #{name}"
  end
end

tom = Person.new("Tom")
jer = Person.new("Jerry")

tom.greet(jer) #=> Hi Jerry, my name is Tom.

这样你就可以把另一个人作为一个对象,而不仅仅是一个名字。

我觉得这很有趣,因为我试过了,但没有成功。它说,“'initialize':参数数量错误(给定1,预期2)(参数错误)来自'new'from'您是否单击了链接,然后单击了run。因为它将以100%的方式工作是的,我这样做了&它运行得很好。也许我所在的这个网站叫做“Codewars”“要我做不同的事情这需要一个清晰的问题陈述,否则它只会在系统中丢失,对其他任何人都没有用。”。标题需要提到您需要以某种方式解决的问题,并且您需要解释您试图做什么,而不仅仅是显示非工作代码。就目前而言,这只是一个个人“请调试我的代码并帮助我完成任务”,对网站没有长期价值。这是一个合理的对象模型,但完全不清楚它是否符合OP的目标,因为OP实际上没有说明它们是什么。