[#19079] reference of object — "Hideaki Takata" <hideakit@...3.dion.ne.jp>
高田です。
[#19082] TermIO for ioctl — Shugo Maeda <shugo@...>
前田です。
前田です。
原です。
こんばんは。三並です。
[#19086] iconv wrapper — nobu.nakada@...
なかだです。
いがらしです。
なかだです。
いがらしです。
高橋征義です。思い出したのでこちらにもフォロー。
knuです。
高橋征義です。Rubyとは直接関係なくてすみません。
[#19115] eRuby を題材にしたページ — TAKEUCHi Kahori <take-k@...>
たけうちです。今日はちょっと宣伝させてくださいまし。
[#19139] 簡易プリプロセッサ epp 0.1 — SASAKI Shunsuke <ele@...17.odn.ne.jp>
どうも。佐々木です。
どうも。佐々木です。
なひです.
助田です.
なひです.
[#19140] ruby は何かの略語? — Noritsugu Nakamura <nnakamur@...>
[#19142] Win32OLE on NT — Masaki Suketa<CQN02273@...>
助田です.
[#19165] how to get extended modules list — Dai <MAP2303@...>
[#19193] Japanese Regular Expression — Hiroyuki KUROSAKI <noir@...>
はじめまして。黒崎と申します。最近 Ruby を使いはじめました。よろしく
In message "[ruby-list:19193] Japanese Regular Expression"
gotoken さん、お返事ありがとうございます。
まつもと ゆきひろです
安達@沖データと申します。
[#19197] GC and IO on SunOS-4.1.4-JLE — kjana@... (YANAGAWA Kazuhisa)
うちの FreeBSD 3.1 では問題無いようなのですが,出先の SunOS-4.1.4-JLE
えぐち@エスアンドイー です。
[#19211] Clipbord を Ruby で使うには? — Itou-T15@...
初めまして。
どぉも、道村です。
[#19228] Ruby 1.4.3 — Yukihiro Matsumoto <matz@...>
Ruby 1.4.3 is out, check out:
[#19240] emacs の ruby モードについて — nakajima kengo<ringo@...>
[#19241] thread を使った socket について — yuuichi satoh <yuuichi.satoh@...>
こんばんわ、佐藤といいます。
[#19246] 破壊的イテレータ? — Hiroshi Saito <HiroshiSaito@...>
どうも、お世話になっております。サイトウです。
青山です。
青山です。
サイトウです。
In message "[ruby-list:19278] オブジェクトの代入について"
まつもと ゆきひろです
ごとけんです
まつもと ゆきひろです
ごとけんです
まつもと ゆきひろです
ごとけんです
荻野ともうします。
ごとけんです
ごとけんです
[#19249] ruby story ? — "Kikutani, Makoto" <kikutani@...>
Maya Stodteつー人からRuby storyについて話を聞きたいのだが、
In message "[ruby-list:19249] ruby story ?"
いがらしです。
あおきです。
まつもと ゆきひろです
[#19283] Ruby 1.4.3 repacked — Yukihiro Matsumoto <matz@...>
Ruby 1.4.3 is out, check out:
[#19304] about -T option on ruby 1.4.2 — nakajima kengo<ringo@...>
[#19399] 改行コード — Akihiro Yamauchi <aygoofy@...>
こんばんは。
[#19420] xtoolkit — Kazuhiro Yoshida <moriq.kazuhiro@...>
もりきゅうです。
[#19441] 自動翻訳プロジェクト — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
青山です。
青山です。
まつもと ゆきひろです
まつもと ゆきひろです
青山です。
[Sub] [ruby-list:19515] Re: 自動翻訳プロジェクト
高橋征義です。
まつもと ゆきひろです
高橋征義です。
石橋"rubyholic"秀仁です。
まつもと ゆきひろです
高橋征義です。
青山です。
高橋征義です。
[#19442] ClipBoard I/O 対応 — Itou-T15@...
クリップボードI/O はたいていファイルI/Oの様に抽象化されていないが
ただただしです。
まつもと ゆきひろです
たかたです
なひです.
まつもと ゆきひろです
石橋秀仁です。
>でも、JavaのRunnableを考えると、interfaceは「お作法」だと思います。。。
[#19444] 「 (」を使う時の正規表現について — yuuichi satoh <yuuichi.satoh@...>
こんにちわ佐藤といいます。
[#19456] mod_ruby & eRuby — Wakou Aoyama <wakou@...>
青山です。
mod_ruby初心者の高橋征義です。
前田です。
高橋征義です。
青山です。
前田です。
青山です。
前田です。
青山です。
前田です。
青山です。
[#19484] Ruby Application Archive — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
まつもと ゆきひろです
助田です.
[#19533] Windows環境 — "Shigeo Kobayashi" <shigeo@...>
小林です.
[#19544] String#shift? — Kazuhiko Izawa <izawa@...>
井澤です。rubyにはいつもお世話になってます。
こんばんは。鈴木教郎です。
[#19549] RubyRing — TAKEUCHi Kahori (竹内かほり) <take-k@...>
たけうちです。
[#19576] X application on gtk application — gotoken@... (GOTO Kentaro)
ごとけんです
やすしです。
石橋秀仁です。
[#19578] ruby-list の過去ログの作り方 — Momotaro Nishiumi <momotaro@...>
はじめまして。ももたろといいますm(_ _)m
原です。
こん○○は〜。ももたろです。
原です。
まつもと ゆきひろです
青山です。
In message <199912172303.IAA02733@hoyogw.netlab.co.jp>
原です。
石橋秀仁です。
原です。
有馬です。
青山です。
やまぐちです。
原です。
やまぐちです。
[#19593] SMF class 0.3 — Tadayoshi Funaba <tadf@...>
ふなばです。
[#19652] Q: Kernel#gets — Tomoyuki Kosimizu <greentea@...2.so-net.ne.jp>
越水です。
[#19656] ftpmirror — Akihiro Yamauchi <aygoofy@...>
こんばんは。
もりきゅうです。
[#19667] RAA category field — Masaki Suketa<CQN02273@...>
助田です.
[#19677] Mutex#synchronize — Tomoyuki Kosimizu <greentea@...2.so-net.ne.jp>
越水です。
有馬です。
越水です。
[#19679] Q: 破壊的メソッドの定義のしかた — Yukihiko Eda <yuki-e@...>
えだです。
[#19690] Book : rb_obj_call_init() — "Shigeo Kobayashi" <shigeo@...>
小林です。
小林です。
小林です。
[#19742] media watch — Noritsugu Nakamura <nnakamur@...>
[#19776] [mswin32] TCPSocket::new() raises Errno::ENOENT — "NAKAMURA, Hiroshi" <nakahiro@...>
なひです.
小田@QNES です。
小松です。
小松です。
小田@QNES です。
まつもと ゆきひろです
小松です。
[#19821] Cygwin 版 ruby の File#read について — one@... (Hajime Tanno)
はじめまして、丹野@筑波大です。
[#19827] can not pass make test on cygwin — kusano@...
草野@構造計画です。
[#19846] ++ -- — "Shigeo Kobayashi" <shigeo@...>
小林です。
[#19871] 半開区間指定 — Itou-T15@...
文字列や配列の半開区間の指定例が Rubyの本やユーザーズガイド
[#19886] c-style for CC Mode — gotoken@... (GOTO Kentaro)
ごとけんです
[#19910] 演算子とスペース — Matsuo Hisanori <hisanori@...>
松尾です。
[#19927] array + empty string — MORITA Atsushi <moritaa@...>
森田です。
[#19933] [book] — Kazuhiro Nishiyama <nishiyama@...1.tiki.ne.jp>
こんばんは、ZnZです。
[#19934] RD with method index (again) — Koji Arai <JCA02266@...>
新井です。
まつもと ゆきひろです
新井です。
Toshです。
新井です。
Toshです。
あおきです。
Toshです。
あおきです。
Toshです。
Toshです。
新井です。
Toshです。
新井です。
Toshです。
Toshです。
新井です。
Toshです。
新井です。
Toshです。
新井です。
Toshです。
あおきです。
Toshです。
新井です。
Toshです。
新井です。
なかだです。
Toshです。
なかだです。
Toshです。
なかだです。
Toshです。
なかだです。
Toshです。
なかだです。
Toshです。
[#19953] メソッド名の制限? — "Hideaki Takata" <hideakit@...3.dion.ne.jp>
たかたです
[#19976] Tell me your favorite tools — Yasushi Shoji <yashi@...>
やすしです。
やすしです。
さくです。
ごとけんです
In article <200003161743.CAA01729@hanare00.math.sci.hokudai.ac.jp>,
Toshです。
[#19983] net/* 1.1.3 — Minero Aoki <aamine@...>
あおきです。
[#19993] about for-in — Tomoyuki Kosimizu <greentea@...2.so-net.ne.jp>
越水です。
[ruby-list:19135] Re: reference of object
青山です。
On Thu, 2 Dec 1999 06:59:05 +0900,
ktokita@ma.neweb.ne.jp wrote:
> でもやっぱり データを命名規則にしたがった変数に格納して、
> 欲しいデータの変数名を作って参照するよりも、
> 規則にしたがったデータ構造をつくって、
> 欲しいデータを直接いぢるほうが美しいと思うんだけどなぁ。
> ま、これも場合によりけりか(^^;
そうですね。結局は場合によりけりですが、適したデータ構造を作る方が良さ
そうという点は同感です。変数名を明かしてユーザーまかせにするよりも、そ
の変数を扱う、適した処理をするメソッドを用意する方が親切そうですしね。
> んー、オンラインドキュメントのどこかをみて認識した事だとおもうのだけど
> 引数は値渡しになるのかと…
> いったいどこを見てそう思ったのだろう(^^;
> 過去ログの紐モデルだとか、そこら辺を流して見て eval.rbでテストして
> (私の)理解と実体を整合させました(^^;
このあたりはまだ決定的な説明が存在しないという感じです。というか、何を
ベースにして話すかによって(相手のベースになる知識によって)変化するよう
なので、複数の説明が存在する事になるようです。
実装に近い、C でのポインタの値渡しあたりをベースにする場合は、ポインタ
の値渡しという事で、値渡しであっています。
一方、実装よりではない、言語仕様をベースにする場合は、このようなポイン
タ渡しを、参照渡しと呼んでいます。言語仕様としては、参照を渡したいので
あり、ポインタを利用しているのは実装の都合でしかないという事ですね。
> > この場合、$object_a の内容をコピーして保持していくため、候補が増えて行
> > くと %object が肥大していくという問題が。
>
> で、その理解と、昔取った杵柄の perl(もう何年も使ってない(^^;)によると
> コピーして保持していくのは $object_a じゃなくて
> "Hello world!\n"(そして "object_a") だと思うのですが
このあたりはちょっとややこしいのですが、Perl は値ベースなので、
$object_a には値そのもの(のコピー)が入っています。元の文字列を保持させ
るには、$object_a = \"Hello world!\n" のように、値ではなく、参照を取る
必要があります。
そして、$object{'object_a'} = $$object_a のようにすると、$object_a の
値ではなく、$object_a の示す "Hello world!\n" がコピーされて %object
に保持されます。
(とはいえ、%object には結局どちらも値のコピーが入るので、結果に差はあ
りません。)
> で、このコピー元の文字列って(この場合)元々ソースのスクリプトに含まれて
> いるんだから、%objectが肥大していくといっても、せいぜい2倍必要になる
> って事ですよね。
そうですね。
> むしろ、大きな違いは 代入をする時(比較データの設定とか)に、
> 書式として楽な方法を選択すると、バッファコピーのおこる頻度が
> rubyの方が少ないって事ですかね。
そうですね。Perl の場合は値ベースですから、基本的に代入等ではすべて内
容がコピーされますが、Ruby の場合は参照ベースですから、代入等では、そ
れへの参照だけが渡されるので、普通に書くと、メモリ効率は Ruby の方が良
さそうです。
より大きな違いとしては、今回の例で言えば、元の変数の変更に追随するかど
うかという点があります。
$object_a = "Hello world!\n";
%object = ();
$object{"object_a"} = $object_a;
chop($object_a);
print $object_a; # --> "Hello world!"
print $object{"object_a"}; # --> "Hello world!\n"
Ruby はリファレンスベースですから、元の内容が変更されても追随します。
object_a = "Hello world!\n"
object = {}
object["object_a"] = object_a
object_a.chop!
print object_a # --> "Hello world!"
print object["object_a"] # --> "Hello world!"
まあ、もっとも、Perl の方もリファレンスを使えば良いだけの事ですけれどね。
$object_a = "Hello world!\n";
%object = ();
$object{"object_a"} = \$object_a;
chop($object_a);
print $object_a; # --> "Hello world!"
print ${$object{"object_a"}}; # --> "Hello world!"
より Ruby に近づけて、すべてをリファレンスにすると、こんな感じでしょうか。
$object_a = \"Hello world!\n";
$object = {};
${$object}{"object_a"} = $object_a;
chop($$object_a);
print $$object_a; # --> "Hello world!"
print ${${$object}{"object_a"}}; # --> "Hello world!"
書ける事は書けるんですよね。
ただ、このややこしいデリファレンスはちょっと...
--
青山 和光 Wakou Aoyama <wakou@fsinet.or.jp>