Ruby 是否有一种方法可以在每次使用时重置已定义的变量?
这是密码Ruby 是否有一种方法可以在每次使用时重置已定义的变量?,ruby,Ruby,这是密码 x = 10 y = 11 def z(q,x,y) q = q - (x + y) end q = 30 z(q,x,y) puts "#{q}" q = 40 z(q,x,y) puts "#{q}" 有没有一种方法可以让我每次使用z(q,x,y)时都重置它?试试这个: x = 10 y = 11 def z(q,x,y) q = q - (x + y) end q = 30 z1 = z(q,x,y) puts "#{z1}" q = 4
x = 10
y = 11
def z(q,x,y)
q = q - (x + y)
end
q = 30
z(q,x,y)
puts "#{q}"
q = 40
z(q,x,y)
puts "#{q}"
有没有一种方法可以让我每次使用z(q,x,y)时都重置它?试试这个:
x = 10
y = 11
def z(q,x,y)
q = q - (x + y)
end
q = 30
z1 = z(q,x,y)
puts "#{z1}"
q = 40
z2 = z(q,x,y)
puts "#{z2}"
打印(使用puts):
通常,您不应该修改参数。在函数z中,q是一个已经设置好的参数,但我想你也希望它是一个外部变量,并改变它的状态 这是你想做的,但请不要这样做 这可能是错误的代码。为什么?全球化是不好的。当我们有幸拥有一个如此纯净的数学函数时,这种变异状态就是一种战争罪,可能会引发骚乱。我们有一个不需要改变状态的数学函数。我们真的不想让z负责:
- 计算新值
- 设置局部变量以供以后使用
x = 10
y = 11
def z(q, x, y)
q - (x + y)
end
q = z(30, x, y)
puts q
q = z(40, x, y)
puts q
如果你是从Ruby或编程开始的,请阅读大量代码并观看现场工作人员的屏幕广播。这是最快的升级路线。如果不立即发生也没关系,下一次尝试会更容易(可能几年后)。请解释一下你想要发生什么。我希望z(q,x,y)在使用时起作用,所以第一次推杆是9,第二次推杆是19
x = 10
y = 11
def z(q,x,y)
$q = q - (x + y)
end
$q = 30
z($q,x,y)
puts "#{$q}"
$q = 40
z($q,x,y)
puts "#{$q}"
# Prints:
# 9
# 19
x = 10
y = 11
def z(q, x, y)
q - (x + y)
end
q = z(30, x, y)
puts q
q = z(40, x, y)
puts q