[#40498] autoload SYMBOL, XX.rb — keiju@... (Keiju ISHITSUKA)
けいじゅ@いしつかです.
8 messages
2005/01/08
[#40501] getopt — keiju@... (Keiju ISHITSUKA)
けいじゅ@いしつかです.
6 messages
2005/01/08
[#40519] What is singletonclass.superclass ? — sheepman <sheepman@...>
こんにちは、sheepman です。
6 messages
2005/01/11
[#40523] Re: アクセス情報の取得について — yuushi44@...
酒匂様、神戸様
4 messages
2005/01/12
[#40546] Net::IMAPの中のinlenって何ですか? — 内木場 美次 <uchikoba@...>
はじめまして。Rubyを始めて2ヶ月ちょっとの
6 messages
2005/01/20
[#40551] Net::IMAPで既に存在するディレクトリが削除できない — 内木場 美次 <uchikoba@...>
お疲れ様です。内木場です。
13 messages
2005/01/21
[#40571] dupとfrozen — Chikara Takamatsu <c_takamatu@...>
始めまして。高松と申します。
5 messages
2005/01/25
[#40580] enum 定数する場合のイディオム — Hiroshi Takagi <gollum@...>
高木@関西のネットワーク屋%Ruby novice monk です。
12 messages
2005/01/27
[#40581] Re: enum 定数する場合のイディオム
— "U.Nakamura" <usa@...>
2005/01/27
こんにちは、なかむら(う)です。
[ruby-list:40534] Re: procの動作について(質問)
From:
IWAOKA Masahiro <iwaoka@...>
Date:
2005-01-13 15:08:17 UTC
List:
ruby-list #40534
いわおかです。
本題とは少し離れますが、
In the message <EBEFIFGNGMKELGCGNMPMAELPCKAA.yahatah@agr.kyushu-u.ac.jp>,
on Thu, Jan 13, 2005 at 06:34:54PM +0900, Hisashi Yahata wrote:
> すでにお礼の中(下の文)でも述べましたように、サブルーチンには、def..endが
> 利用できることは理解していますが、引数でデータ交換する(配列にすれば一文字で
> すむわけですが、)が、すっきりせずに、面倒な印象があるからです。
このあたりの感覚は、生い立ちによって違いがあって面白いですね。昔々、
BASIC から C に移って時間が経ち、BASIC ではみんなグローバルという
ことも忘れかけた頃に、人に渡すか何かで、C で書いた関数を BASIC の
サブルーチンで置き換えようとして、「何でこんなとこの影響が、こっち
のとんでも無い方にまで出るんだよぉ」ということで面倒になって放り出
した記憶が蘇えってきました:-) FORTRAN のサブルーチンでもハマッタ記
憶があります。
C 育ちですと、基本的にみんなローカル変数、あちこちから参照されるフ
ラッグ的なものはグローバル変数、さらにソースコードを分割することに
よって、ソースファイルローカルなグローバル変数(変な日本語ですが)
とソースファイル間でグローバルなグローバル変数てな使い分けになるん
でしょうか。
で、ruby で素直に書くと、オブジェクトに仕事をしてもらうと考えて、
元の例とはちょっと違いますがこんな書き方すれば、引き数渡しが必要な
場面も減ると思います。
class Integer
def addtwo
self + 2
end
end
a = 1
p a.addtwo
> 「グローバル変数はなるべく使わないほうがよい」という示唆があるので、ローカ
この「グローバル変数はなるべく使わないほうがよい」というのは、ruby
で言えば $ で始まる名前の変数を使わない方が良いというのではなく、
使わなくてすむような書き方をしましょうという意味です。例えば、ソー
スの先頭で、使う変数を全部初期化して、ソース内のどのブロックからも
参照できるようにするというのは、実質的にグローバル変数を作っている
のと同じでしょう。であれば、明示的に $ で始まるグローバル変数を使っ
た方が、後々のメンテナンスも楽になると思います。
いわおか