[#43157] Exerb 4.1.0とswin060205でアプリケーションエラー — UMESHIMA Shingo <shin5home@...>
はじめまして。梅島と申します。
8 messages
2007/02/03
[#43159] Re: Exerb 4.1.0とswin060205でアプリケーションエラー
— arton <artonx@...>
2007/02/05
artonです。
[#43167] CGIで受け取ったデータをファイルに書き込む際のエラー — "CXP04754@..." <cxp04754@...>
始めて投稿します、ぱんと申します。
6 messages
2007/02/08
[#43176] [ANN] Ruby-GNOME2 Win32 GUI Installer — Masao Mutoh <mutoh@...>
むとうです。
1 message
2007/02/12
[#43181] 文字列の分割について — Tomo <iwasaiwasa2000@...>
正規表現を使用し以下のように文字列を分割したいのですが
11 messages
2007/02/13
[#43182] Re: 文字列の分割について
— rubikitch@...
2007/02/13
From: Tomo <iwasaiwasa2000@yahoo.co.jp>
[#43183] Re: 文字列の分割について
— seuzo <ym3s-ickw@...>
2007/02/13
せうぞーです。
[#43184] 日本語入力 Ruby/Tk MacOSX
— 上間 健 <mugenkai15@...>
2007/02/14
こんばんは
[#43185] Re: 日本語入力 Ruby/Tk MacOSX
— Hidetoshi NAGAI <nagai@...>
2007/02/15
永井@知能.九工大です.
[#43191] ActiveTclのインストール — HIiroshi Kasamatsu <qqmn89yb9@...>
こんにちは、笠松と申します。
13 messages
2007/02/17
[#43193] Re: ActiveTclのインストール
— Hidetoshi NAGAI <nagai@...>
2007/02/18
永井@知能.九工大です.
[#43198] Re: ActiveTclのインストール
— HIiroshi Kasamatsu <qqmn89yb9@...>
2007/02/18
永井さん、アドバイスありがとうございます。
[#43200] Re: ActiveTclのインストール
— Hidetoshi NAGAI <nagai@...>
2007/02/18
永井@知能.九工大です.
[#43202] Re: ActiveTclのインストール
— HIiroshi Kasamatsu <qqmn89yb9@...>
2007/02/19
永井さん、何度もありがとうございます。笠松です。
[#43203] Re: ActiveTclのインストール
— Hidetoshi NAGAI <nagai@...>
2007/02/19
永井@知能.九工大です.
[#43217] Ruby 1.8.6 preview2 has been released — "Akinori MUSHA" <knu@...>
Ruby 1.8.6 preview2 をリリースしました。
13 messages
2007/02/24
[#43235] Re: Ruby 1.8.6 preview2 has been released
— Masateru Yoshikawa <yoshikawa.masat@...>
2007/02/28
吉川と申します。
[#43236] Re: Ruby 1.8.6 preview2 has been released
— "Akinori MUSHA" <knu@...>
2007/02/28
At Wed, 28 Feb 2007 10:10:09 +0900,
[#43221] cloneというメソッドの機能について(質問) — "yahata hisashi" <yahatah@...>
cloneについての質問です。
6 messages
2007/02/26
[ruby-list:43153] Re: 配列は、メソッド呼出における引数初期化の例外なんでしょうか?
From:
Tetsuo Sakaguchi <saka@...>
Date:
2007-02-01 11:52:03 UTC
List:
ruby-list #43153
阪口と申します。このmlには初投稿ですが、よろしくお願いします。
In message <45C1C054.5060407@masou.net> 2007-02-01T19:26+0900,
Masou <mas@masou.net> wrote:
> 文字列は初期化されますが、Arrayは初期化されず、
> 書換えた結果が呼び出し元に返されてます。
初期化されるされないではなく、
変数への代入は各変数の有効範囲内のみで有効でしかないのですが、
複数の変数が同じオブジェクトを参照しているとそのオブジェクトの
状態変化は、どの変数から見ても共通に見えるということです。
つまり、
> def henkan(ary, str)
> p [21, str, ary]
> ary.shift
> str = "new"
> p [22, str, ary]
> end
この ary.shift は「aryという変数から参照されている配列オブジェクトに
shift して状態を変えなさい」と指示しているので、配列自体が変わる。
一方、str = "new"は「strという変数に今まで参照していた値を忘れて、
"new"という文字列を参照しなさい」と指示したことになります。
で、ここの変数str, ary はこのメソッド内だけで有効です。
で、この変数aryが参照しているのは、
> str = "old"; ary = ["(", "{"]
で代入された「["(", "{"]」という配列オブジェクトで、同じオブジェクトを
参照しているので、メソッドから戻ってもそのオブジェクトはshiftされたもの
ということですね。
一方、こちらのstrにはこの行以降代入を指示していないので、依然として"old"を
指し示しているということです。
この辺のポイントは「call by value(引数の値渡し)」と
「配列もオブジェクトである」という点ですね。
PS. つい説明が長くなりました。既にこの辺をご存知の方にはご容赦を。
--
阪口哲男@図書館情報メディア研究科.大学院.筑波大学
Tetsuo SAKAGUCHI.
Graduate School of Library, Information and Media Studies
University of Tsukuba, JAPAN.