Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 实例化默认值和变量_Ruby_Class_Default_Argument Error - Fatal编程技术网

Ruby 实例化默认值和变量

Ruby 实例化默认值和变量,ruby,class,default,argument-error,Ruby,Class,Default,Argument Error,所以我有一个班级舞会。在Ball中,我们有一个方法类型。我想做的是返回一个球类型的字符串。棘手的部分:如果ball没有参数,我想返回字符串“standard”。这可以很好地处理无参数的情况。然而,“football”案例不断抛出错误1表示0错误。我试图做的是设置一个默认值“standard”,如果没有参数传递给type并打印给定的参数(给定它是一个字符串)。如何修复此错误?我已经尝试过使用splat并且只接受了0个参数。两者都不起作用 class Ball def type(ball="st

所以我有一个班级舞会。在Ball中,我们有一个方法类型。我想做的是返回一个球类型的字符串。棘手的部分:如果ball没有参数,我想返回字符串“standard”。这可以很好地处理无参数的情况。然而,“football”案例不断抛出错误1表示0错误。我试图做的是设置一个默认值“standard”,如果没有参数传递给type并打印给定的参数(给定它是一个字符串)。如何修复此错误?我已经尝试过使用splat并且只接受了0个参数。两者都不起作用

class Ball
  def type(ball="standard")
      ball
    end
end

Test.assert_equals Ball.new("football").ball_type, "football"
Test.assert_equals Ball.new.ball_type, "standard"

由于您正在
Ball
上调用
new
,因此应将
type
方法重命名为
initialize
。当构建
Ball
的新实例时,将自动调用此方法

class Ball
  def initialize(ball = "standard")
    @ball = ball
  end
end
@ball=ball
表示
ball
参数保存到
@ball
实例变量中

在调用
ball.new.ball\u type
时,似乎还需要一种访问ball类型的方法:

class Ball
  def initialize ... end

  def ball_type
    @ball
  end
end
此方法仅返回
@ball
实例变量的值,该变量是在
initialize
方法中设置的

在这些修改之后:

Ball.new("football").ball_type # => "football"
Ball.new.ball_type # => "standard"

由于您正在
Ball
上调用
new
,因此应将
type
方法重命名为
initialize
。当构建
Ball
的新实例时,将自动调用此方法

class Ball
  def initialize(ball = "standard")
    @ball = ball
  end
end
@ball=ball
表示
ball
参数保存到
@ball
实例变量中

在调用
ball.new.ball\u type
时,似乎还需要一种访问ball类型的方法:

class Ball
  def initialize ... end

  def ball_type
    @ball
  end
end
此方法仅返回
@ball
实例变量的值,该变量是在
initialize
方法中设置的

在这些修改之后:

Ball.new("football").ball_type # => "football"
Ball.new.ball_type # => "standard"

由于您正在
Ball
上调用
new
,因此应将
type
方法重命名为
initialize
。当构建
Ball
的新实例时,将自动调用此方法

class Ball
  def initialize(ball = "standard")
    @ball = ball
  end
end
@ball=ball
表示
ball
参数保存到
@ball
实例变量中

在调用
ball.new.ball\u type
时,似乎还需要一种访问ball类型的方法:

class Ball
  def initialize ... end

  def ball_type
    @ball
  end
end
此方法仅返回
@ball
实例变量的值,该变量是在
initialize
方法中设置的

在这些修改之后:

Ball.new("football").ball_type # => "football"
Ball.new.ball_type # => "standard"

由于您正在
Ball
上调用
new
,因此应将
type
方法重命名为
initialize
。当构建
Ball
的新实例时,将自动调用此方法

class Ball
  def initialize(ball = "standard")
    @ball = ball
  end
end
@ball=ball
表示
ball
参数保存到
@ball
实例变量中

在调用
ball.new.ball\u type
时,似乎还需要一种访问ball类型的方法:

class Ball
  def initialize ... end

  def ball_type
    @ball
  end
end
此方法仅返回
@ball
实例变量的值,该变量是在
initialize
方法中设置的

在这些修改之后:

Ball.new("football").ball_type # => "football"
Ball.new.ball_type # => "standard"

这就成功了,但是有没有办法折射呢?有两个方法来处理一个空的情况只会让人觉得效率低下me@user3466773这是最简单的。您可以重构
def ball\u类型。。。如果您不介意将
ball\u type
方法重命名为
ball
,请结束
to
attr\u accessor:ball
。这样就成功了,但是有什么方法可以折射它吗?有两个方法来处理一个空的情况只会让人觉得效率低下me@user3466773这是最简单的。您可以重构
def ball\u类型。。。如果您不介意将
ball\u type
方法重命名为
ball
,请结束
to
attr\u accessor:ball
。这样就成功了,但是有什么方法可以折射它吗?有两个方法来处理一个空的情况只会让人觉得效率低下me@user3466773这是最简单的。您可以重构
def ball\u类型。。。如果您不介意将
ball\u type
方法重命名为
ball
,请结束
to
attr\u accessor:ball
。这样就成功了,但是有什么方法可以折射它吗?有两个方法来处理一个空的情况只会让人觉得效率低下me@user3466773这是最简单的。您可以重构
def ball\u类型。。。如果您不介意将
ball\u type
方法重命名为
ball
,则结束
to
attr\u访问器:ball