[#46301] 自前コンパイルしたruby1.9の$LOAD_PATHに"."が入っていない — KURODA Hiraku <hiraku@...>

こんにちは、黒田ひらくと言います。

12 messages 2009/08/20

[#46321] ファイル名について — "前川 映一" <eiichi_maekawa@...>

17 messages 2009/08/21
[#46322] Re: ファイル名について — "NARUSE, Yui" <naruse@...> 2009/08/21

成瀬です。

[#46324] Re: [ruby-list:46322 , 46323 ] Re: ファイル名について — "前川 映一" <eiichi_maekawa@...> 2009/08/21

[ruby-list:46299] Re: rubyの変数の扱いについて

From: ikezawa@... (ikezawa)
Date: 2009-08-19 01:04:43 UTC
List: ruby-list #46299
池澤といいます。

On Mon, 17 Aug 2009 16:29:43 +0900
"前川 映一" <eiichi_maekawa@mhi.co.jp> さんwrites:
--略--
>   a = a + i
> undefined method `+' for nil:NilClass (NoMethodError)
> Complete(1) エラーとなります。
>
--略--

「プログラミングRuby」(ISBN978-4-87311-394-4) P91 には

| 4.2 変数参照
|  変数とは、単純に値につけられた名前のことである。変数を作成するのは代入式で、
|このときに値も代入される。..(以下略)

と書いてあります。

Rubyリファレンスマニュアルの「変数」のページには
v = 1 if false
というおもしろい例があげられています。
http://www.ruby-lang.org/ja/man/html/

で、やってみました。

C:\>ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [i386-mswin32]
C:\>irb --simple-prompt
>> v = 1 if false
=> nil
>> defined?(v)
=> "local-variable"
>> v.class
=> NilClass
#
# じゃこういうのはどうかな?
>> x = x + 1
NoMethodError: undefined method `+' for nil:NilClass

# NilClassのnilに'+'というメソッドは定義されていない・・
#
# x の定義自体は成功してるということか?
>> defined?(x)
=> "local-variable"
>> x.class
=> NilClass
# なるほど

# じゃこういうのはいけるのかな?
>> y = y.to_i + 1
=> 1
# おっ!
>> defined?(y)
=> "local-variable"
>> y.class
=> Fixnum

# こんなのもいけるかな?
>> var = var
=> nil
>> defined?(var)
=> "local-variable"
>> var.class
=> NilClass
# なるほど



In This Thread