0

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 オブジェクト) はその値を変更しないのでしょうか?

あなたの考えは大歓迎です。:) ありがとう

4

1 に答える 1