Ruby 实例化默认值和变量
所以我有一个班级舞会。在Ball中,我们有一个方法类型。我想做的是返回一个球类型的字符串。棘手的部分:如果ball没有参数,我想返回字符串“standard”。这可以很好地处理无参数的情况。然而,“football”案例不断抛出错误1表示0错误。我试图做的是设置一个默认值“standard”,如果没有参数传递给type并打印给定的参数(给定它是一个字符串)。如何修复此错误?我已经尝试过使用splat并且只接受了0个参数。两者都不起作用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
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
,请结束toattr\u accessor:ball
。这样就成功了,但是有什么方法可以折射它吗?有两个方法来处理一个空的情况只会让人觉得效率低下me@user3466773这是最简单的。您可以重构def ball\u类型。。。如果您不介意将ball\u type
方法重命名为ball
,请结束toattr\u accessor:ball
。这样就成功了,但是有什么方法可以折射它吗?有两个方法来处理一个空的情况只会让人觉得效率低下me@user3466773这是最简单的。您可以重构def ball\u类型。。。如果您不介意将ball\u type
方法重命名为ball
,请结束toattr\u accessor:ball
。这样就成功了,但是有什么方法可以折射它吗?有两个方法来处理一个空的情况只会让人觉得效率低下me@user3466773这是最简单的。您可以重构def ball\u类型。。。如果您不介意将ball\u type
方法重命名为ball
,则结束toattr\u访问器:ball
。