我刚开始学习 Ruby,遇到了这两个函数:
def increase(n)
n = n + 1
return n
end
def add_element(array, item)
array << item
end
当我尝试使用 n = 5 增加(n)时
c = 5
p10.increase(c)
print("c is #{c}\n")
print("c.class is #{c.class}\n")
--> c is 5
--> c.class is Fixnum
c的值在increase(n)内增加后不变
当我尝试使用 add_element 更改数组 arr = [1,2,3,4] 的内容时,arr 确实发生了变化。
arr = [1, 2, 3, 4]
p10.add_element(arr, 5)
print("array is #{arr}\n")
--> array is [1, 2, 3, 4, 5]
那么如果 Ruby 中的一切都是对象,为什么 arr 会改变它的值,而 c(一个 Fixnum 对象)却不会改变它的值呢?
感谢您的想法。:) 谢谢