这是代码
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)每次使用都会重置?
答案 0 :(得分:0)
试试这个:
arrow
打印(使用puts):
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}"
答案 1 :(得分:0)
通常,您不应修改参数。在函数z中,q是一个已设置的参数,但我认为你也希望它是一个外部变量并改变它的状态。
这是你想要做的,但请不要这样做。
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
这可能是错误的代码。为什么?全球都很糟糕。当我们幸运地拥有像这样纯洁的数学函数时,像这样的变异状态是一种战争罪行并且可能引起骚乱。我们有一个不需要改变状态的数学函数。我们真的不希望z负责:
第二部分是该死的部分。当不需要时,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或一般编程,请阅读大量代码并观看现场工作人员的截屏视频。这是升级一点点的最快路线。如果不立即发生就可以了,下次你尝试会更容易(多年后也许)。