任何将ruby中的变量重置为其原始值的方法
假设我在任何将ruby中的变量重置为其原始值的方法,ruby,Ruby,假设我在initialize方法中声明了变量@counter=0,在代码的某些部分,我想再次将其重置为原始值。虽然我可以手动执行@counter=0,但我想知道是否有任何方法可以将其重置为原始指定值。例如:@counter.reset def initialize @counter = 0 ... end def first @some_string.each do |f| if f == '' @counter += 1 end @counte
initialize
方法中声明了变量@counter=0
,在代码的某些部分,我想再次将其重置为原始值。虽然我可以手动执行@counter=0
,但我想知道是否有任何方法可以将其重置为原始指定值。例如:@counter.reset
def initialize
@counter = 0
...
end
def first
@some_string.each do |f|
if f == ''
@counter += 1
end
@counter = 0 # Want to change it here
end
end
如果我理解正确,请尝试:
def initialize
reset_counter
...
end
def reset_counter
@counter = 0;
end
def First
@some_string.each do |f|
if f == ''
@counter += 1
end
end
reset_counter
end
在Ruby中,变量不是对象,你不能告诉它们做任何事情。对于一个变量,您可以做两件事:赋值和取消引用。难道不是更简单吗?或者您的意思是它可能被初始化为一个非
0
的值?是的,它更简单,但..只是想知道我们是否有任何方法可以设置为其初始化状态而不必手动修改它。@CarySwoveland..很抱歉,我听不懂您的意思..如果您在初始化中指定@counter=val
,可能@counter=@original\u counter=val
,def reset\u counter@counter=@original\u counter;结束
?您不能在实例变量(即,@counter.reset
)上定义方法。Rahul,我们通常使用所有小写字母(和可选下划线)作为变量和方法的名称(即,first
而不是first
)。另外,def first
缺少一个end
。通常,当在问题中给出initialize
时,它显示为在一个类中(例如,class MyClass;def initialize…end…end
),尽管没有法律规定必须这样做。此外,在发布之前,您应该在IRB或PRY中测试您的代码。例如,这可能会出现缺少的结尾。这很好。但我还是更喜欢做@counter=0,而不是做这么多…我想知道是否有任何快速方法可以做到这一点。如果你不再做任何事情,最短的方法就是你所说的:@counter=0
好点。不知怎的,我想知道会有什么办法。非常感谢。