オブジェクトと参照を処理するルビーの方法について少し知っています。交換品など...
var が fixnum であるため、fixnum では機能しないことはわかっています。しかし、関数内の fixnum の値を変更したいのですが、その値は ouside var で変更されました。
これどうやってするの ?
この「1」のような文字列を使用できると思いますが、それはかなり汚いです。
オブジェクトと参照を処理するルビーの方法について少し知っています。交換品など...
var が fixnum であるため、fixnum では機能しないことはわかっています。しかし、関数内の fixnum の値を変更したいのですが、その値は ouside var で変更されました。
これどうやってするの ?
この「1」のような文字列を使用できると思いますが、それはかなり汚いです。
Ruby は常に参照渡しを行いますが (すべてがオブジェクトであるため)、Fixnum には値を変更できるメソッドがありません。詳細については、「void foo(int &x) -> Ruby? Passing integers by reference?」を参照してください。
次のように、変数に割り当てる値を返すことができます。
a = 5
def do_something(value)
return 1 #this could be more complicated and depend on the value passed in
end
a = do_something(a)
または、ハッシュなどのオブジェクトで値をラップして、そのように更新することもできます。
a = {:value => 5}
def do_something(dict)
dict[:value] = 1
end
do_something(a) #now a[:value] is 1 outside the function
お役に立てれば。
のような単一の数値[1]
またはハッシュのような配列を渡すことができ{value: 1}
ます。数値自体は数値のままであるため、文字列よりも見苦しくありませんが、新しいクラスよりもオーバーヘッドが少なくなります...