[#47861] ruby1.9.2 ruby-debug19-0.11.6.gem のローカルインストール — eiichi_maekawa@...

20 messages 2011/02/10
[#47874] Re: ruby1.9.2 ruby-debug19-0.11.6.gem のローカルインストール — eiichi_maekawa@... 2011/02/15

前川です。

[#47875] Re: ruby1.9.2 ruby-debug19-0.11.6.gem のローカルインストール — OZAWA Sakuro <sakuro@2238club.org> 2011/02/15

さくです。

[#47876] Re: ruby1.9.2 ruby-debug19-0.11.6.gem のローカルインストール — eiichi_maekawa@... 2011/02/15

[#47877] Re: ruby1.9.2 ruby-debug19-0.11.6.gem のローカルインストール — OZAWA Sakuro <sakuro@2238club.org> 2011/02/15

さくです。

[#47878] Re: ruby1.9.2 ruby-debug19-0.11.6.gem のローカルインストール — Kenta Murata <muraken@...> 2011/02/15

むらたです。

[ruby-list:47913] 2 種類のリテラル

From: "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp>
Date: 2011-02-23 03:43:01 UTC
List: ruby-list #47913
きしもとです

Ruby についてというよりプログラミング言語一般についての質問なのですが、

Ruby において、配列リテラルなどのリテラルは「評価されると新しく
オブジェクトを作って、それを字面に従って初期化して、返す式」です。

irb(main):001:0> def foo;[1, 2, 3]end
=> nil
irb(main):002:0> foo.object_id
=> 17190049580
irb(main):003:0> foo.object_id
=> 17190059980

一方、正規表現リテラル(他にありましたっけ?)は(通常)「あらかじめ
(コンパイル時に)字面に従ってオブジェクトが作られ、評価される度に、
その同じオブジェクトを返す式」です。

irb(main):009:0> def bar;/abc/ end
=> nil
irb(main):010:0> bar.object_id
=> 17190104680
irb(main):011:0> bar.object_id
=> 17190104680

言語や、リテラルやオブジェクトの種類によって(あるいは式展開を含む
正規表現リテラルのようにそれ自身のパターンによって)、リテラルには
このように、2 種類に大別できる、意味の違いがあるわけですが、このことに
ついて、はっきりと区別するような分類法というか、名前というか、その
ようなものはあるのでしょうか?

ちょっと調べてみたところわからなかったので、質問してみます。

In This Thread

Prev Next