Ruby の学習を始めたばかりで、次の 2 つの関数に遭遇しました。
def increase(n)
n = n + 1
return n
end
def add_element(array, item)
array << item
end
n = 5でincrease(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
増加(n)内で増加した後、cの値は変化しません
配列 arr = [1,2,3,4] の内容を add_element で変更しようとすると、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 オブジェクト) はその値を変更しないのでしょうか?
あなたの考えは大歓迎です。:) ありがとう