我不明白为什么他们说 Ruby按值传递所有参数,同时下面的代码证明了相反的情况:
class MyClass1
@var1 = 123
def get1
@var1
end
def set1=value
@var1 = value
end
end
c1 = MyClass1.new
c1.set1 = 444
p c1.get1 # 444
def test1 mc
mc.set1 = 999
end
test1 c1
p c1.get1 # 999
Run Code Online (Sandbox Code Playgroud)
如果按价值计算,它会打印出来444,而不是999.
可能重复:
Ruby中的'通过引用传递参数'?
在这个例子中:
def test
verb = 'nothing'
yield verb
puts verb
end
test {|verb| verb = 'something'}
Run Code Online (Sandbox Code Playgroud)
它将打印"没有".
是否有可能将其改为"某事"?
谢谢
如何使用方法更改变量的内容?也许我不是说得对.有什么方法可以像C中那样获取变量的引用?例:
// main stuff
int gorilla = 29;
makeMeABanana(&gorilla);
void makeMeABanana(int *gorilla) { }
Run Code Online (Sandbox Code Playgroud)
我怎么能在Ruby中做这样的事情?
>> a = 5
=> 5
>> b = a
=> 5
>> b = 4
=> 4
>> a
=> 5
Run Code Online (Sandbox Code Playgroud)
如何将'b'设置为实际为'a',以便在示例中,变量a也将变为4.谢谢.
如果我在Ruby中有一个变量数组:
a = 4
b = 7
c = 1
array = [a, b, c]
Run Code Online (Sandbox Code Playgroud)
如何访问具有最高值的变量的名称?(在这个例子中b)我想检索对具有最高值的元素的引用,以便以后能够操作它:
b += 10
Run Code Online (Sandbox Code Playgroud)
我尝试array.max但只返回最大值7