[#9052] bang method returns string always — WATANABE Hirofumi <eban@...>

わたなべです.

92 messages 2000/02/01
[#9054] Re: bang method returns string always — matz@... (Yukihiro Matsumoto) 2000/02/01

まつもと ゆきひろです

[#9060] Re: bang method returns string always — WATANABE Hirofumi <eban@...> 2000/02/02

わたなべです.

[#9062] Re: bang method returns string always — matz@... (Yukihiro Matsumoto) 2000/02/02

まつもと ゆきひろです

[#9070] Re: bang method returns string always — Wakou Aoyama <wakou@...> 2000/02/03

青山です。

[#9082] Re: bang method returns string always — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/02/04

なひです.

[#9083] Re: bang method returns string always — matz@... (Yukihiro Matsumoto) 2000/02/04

まつもと ゆきひろです

[#9259] ruby object — Minero Aoki <aamine@...> 2000/02/20

あおきです。

[#9263] Re: ruby object — matz@... (Yukihiro Matsumoto) 2000/02/21

まつもと ゆきひろです

[#9264] Re: ruby object — Minero Aoki <aamine@...> 2000/02/21

あおきです。

[#9266] Re: ruby object — matz@... (Yukihiro Matsumoto) 2000/02/22

まつもと ゆきひろです

[#9084] Re: bang method returns string always — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/02/04

なひです.

[#9096] Re: bang method returns string always — Kazunori NISHI <kazunori@...> 2000/02/04

西@九大です。

[#9100] Re: bang method returns string always — matz@... (Yukihiro Matsumoto) 2000/02/04

まつもと ゆきひろです

[#9154] Re: bang method returns string always — Kazunori NISHI <kazunori@...> 2000/02/08

西@九大です。

[#9158] Re: bang method returns string always — matz@... (Yukihiro Matsumoto) 2000/02/08

まつもと ゆきひろです

[#9170] Re: bang method returns string always — Kazunori NISHI <kazunori@...> 2000/02/09

西@九大です。

[#9171] Re: bang method returns string always — matz@... (Yukihiro Matsumoto) 2000/02/09

まつもと ゆきひろです

[#9173] Re: bang method returns string always — Koji Arai <JCA02266@...> 2000/02/09

新井です。

[#9206] Re: bang method returns string always — nobu.nakada@... 2000/02/13

なかだです。

[#9207] Re: bang method returns string always — "Akinori -Aki- MUSHA" <knu@...> 2000/02/13

 knuです。

[#9208] Re: bang method returns string always — nobu.nakada@... 2000/02/13

なかだです。

[#9211] Re: bang method returns string always — matz@... (Yukihiro Matsumoto) 2000/02/13

まつもと ゆきひろです

[#9212] Re: bang method returns string always — "Akinori -Aki- MUSHA" <knu@...> 2000/02/13

 knuです。

[#9213] Re: bang method returns string always — Kazuhiro Yoshida <moriq.kazuhiro@...> 2000/02/14

もりきゅうです。ゴミまき。

[#9214] Re: bang method returns string always — gotoken@... (GOTO Kentaro) 2000/02/14

ごとけんです

[#9215] Re: bang method returns string always — WATANABE Hirofumi <Hirofumi.Watanabe@...> 2000/02/14

わたなべです.

[#9218] Re: bang method returns string always — Kazuhiro Yoshida <moriq.kazuhiro@...> 2000/02/15

もりきゅうです。

[#9219] Re: bang method returns string always — matz@... (Yukihiro Matsumoto) 2000/02/15

まつもと ゆきひろです

[#9220] Re: bang method returns string always — Kazuhiro Yoshida <moriq.kazuhiro@...> 2000/02/15

もりきゅうです。

[#9222] Re: bang method returns string always — Koji Arai <JCA02266@...> 2000/02/15

新井です。

[#9224] Re: bang method returns string always — matz@... (Yukihiro Matsumoto) 2000/02/15

まつもと ゆきひろです

[#9085] xmalloc() in Windows — "Shigeo Kobayashi" <shigeo@...>

小林です。

38 messages 2000/02/04

[#9134] Re: site_ruby — gotoken@... (GOTO Kentaro)

ごとけんです

24 messages 2000/02/07
[#9135] Re: site_ruby — WATANABE Hirofumi <Hirofumi.Watanabe@...> 2000/02/07

わたなべです.

[#9143] Re: site_ruby — nobu.nakada@... 2000/02/07

なかだです。

[#9161] Re: site_ruby — gotoken@... (GOTO Kentaro) 2000/02/08

In message "[ruby-dev:9143] Re: site_ruby"

[#9290] [fix] String#* with huge string — EGUCHI Osamu <eguchi@...>

えぐち@エスアンドイー です。

17 messages 2000/02/26
[#9293] Re: [fix] String#* with huge string — matz@... (Yukihiro Matsumoto) 2000/02/26

まつもと ゆきひろです

[#9294] Re: [fix] String#* with huge string — EGUCHI Osamu <eguchi@...> 2000/02/27

えぐち@エスアンドイー です。

[#9297] GC Problem ? — "Shigeo Kobayashi" <shigeo@...>

小林です。

23 messages 2000/02/27

[ruby-dev:9229] Re: class variable (Re: bang method returns string always)

From: Kazuhiro Yoshida <moriq.kazuhiro@...>
Date: 2000-02-16 09:19:14 UTC
List: ruby-dev #9229
もりきゅうです。

石塚圭樹 さんは書きました:
>ただ, わたし的には, クラス変数が@Cvarとなったときに, クラス変数ではなく
>てクラスのインスタンス変数を本当に用いたくなったときの変数の命名法を悩み
>ますけどね(^^;;;

クラスのインスタンス変数は

class Circle
  @cins
end

とした時の @cins ( つまり @[^A-Z]\w* ) で対応できるのでは?


でも,クラスのインスタンス変数って,どういう使い道があるのだろう?
ちょっと,私なりに Ruby の変数・定数について考察してみます。

1. クラスのローカル変数と普通のローカル変数

class Circle
  x = 1 # (A)
  def show
    p x # (B)
  end
end

(A)(B) は区別される。 # この場合 (B) で NameError

2. クラスのインスタンス変数と普通のインスタンス変数

class Circle
  @foo = 1 # (A)
  def show
    p @foo # (B)
  end
end

現状(ruby 1.4) では,
(A) の @foo はクラス自身 (Circle object) のインスタンス変数であり,
(B) の @foo は普通の (つまりクラスのインスタンスの内部情報としての)
インスタンス変数であるから,(A)(B) の @foo は区別される。
この場合 (B) は nil を返す。

このインスタンス変数の振る舞いは,クラス変数を導入しても変わらない。
... ここまでは ok なのかな? # なんか,表現するのが難しいなあ

ええと,以下,クラス変数を @Cvar ( つまり @[A-Z]\w* ) と表すように
なったと仮定します。

3. クラス変数

class Circle
  @Id = 0 # (A)
  def initialize(r)
    @Id+= 1 # (B)
  end
end

(A) クラス Circle のクラス変数 @Id
いや,(A) クラス Circle 自身のクラス変数 @Id か?
(B) クラス Circle のクラス変数 @Id
さて,(A)(B) は区別されるのか?
区別されるとすれば,@Id はどうやって初期化するのか?

4. クラス定数

class Circle
  PI = 3.14159 # (A)
  def initialize
    p PI # (B)
  end
end
(A)(B) Circle クラスの定数 PI #=> 同一

* 結論めいたこと

クラス変数とクラス定数は同格に扱われるべきだろうから,
3. の (A)(B) における @Id は,同一だとするのが妥当。

クラスのインスタンス変数は,使い道がなさそう。^^;
# 継承とか Mix-in したりすると,生きてくるのかな?


あと,参照の仕方もまとめてみたいけど... 眠い。

----
Kazuhiro Yoshida  moriq.kazuhiro@nifty.ne.jp

In This Thread