[#48382] Ruby/Gstreamer for Windows — ashbb <ashbbb@...>

こんにちは。

17 messages 2011/09/22
[#48383] Re: Ruby/Gstreamer for Windows — Kouhei Sutou <kou@...> 2011/09/23

須藤です。

[#48385] Re: Ruby/Gstreamer for Windows — ashbb <ashbbb@...> 2011/09/23

須藤さん

[#48392] 要素のない配列の挙動? — 俊(とし) <toshio.otaguro@...>

前略

21 messages 2011/09/24
[#48393] Re: 要素のない配列の挙動? — TADA Tadashi <t@...> 2011/09/24

ただただしです。

[#48394] Re: 要素のない配列の挙動? — 俊(とし) <toshio.otaguro@...> 2011/09/24

ただただし さん

[#48399] Re: 要素のない配列の挙動? — nonta@... 2011/09/24

野田と申します。

[#48400] Re: 要素のない配列の挙動? — 俊(とし) <toshio.otaguro@...> 2011/09/24

皆さま

[ruby-list:48408] Re: 要素のない配列の挙動?

From: 俊(とし) <toshio.otaguro@...>
Date: 2011-09-25 05:01:29 UTC
List: ruby-list #48408
> r = [1, 2, 3]
> x = r
> y = r[0..-1]
> x = [3, 4, 5]
> r = [5, 6, 7]
> p r #=> [5, 6, 7]
> p x #=> [3, 4, 5]
> p y #=> [1, 2, 3]

> r = [5, 6, 7] のところで新しい配列オブジェクトが作られてしまっています。

いえ,これはそのように意図して r が新しいオブジェクトを参照するようにしたつもりです.
そうなる前に,y に内容をコピーしておけば,あとから y で参照できる,ということを
示したかったものです.

> あとdupやcloneでは、コピーで新しいオブジェクトを作れれますよー。

るりまの Array#dup のところの例を見ると,ポインタのコピーのように見えるのですが.
配列オブジェクトを指すポインタオブジェクトは新しく作られますが(dup と clone で若干差は
あるようですが),配列オブジェクトそのものは元のものが一つあるだけだと思うのですが.

ary = ['string']
p ary             #=> ["string"]
copy = ary.dup
p copy            #=> ["string"]

ary[0][0...3] = ''
p ary             #=> ["ing"]
p copy            #=> ["ing"]

-- 
俊(とし)

In This Thread