learn-ruby-in-kansai:1231
From: クラフトギア 渡辺俊輔 <craftgear@a...>
Date: Sat, 26 Nov 2005 21:21:54 +0900
Subject: [learn-ruby-in-kansai:1231] Re: シンボルという概念 Re: Rubyについてのnoviceな質問はOK?
あづみさん
レスありがとうございます。
さっそくirbで確認してみました。
irb(main):007:0> hoge = "abc"
=> "abc"
irb(main):008:0> p hoge.object_id
284256
=> nil
irb(main):009:0> hoge = "abc"
=> "abc"
irb(main):010:0> p hoge.object_id
274320
=> nil
同じ変数名に、同じ文字列を入力しても、違うオブジェクトIDになっているのを
確認できました。
同じようにシンボルも確認してみました。
irb(main):021:0> abc = :abc
=> :abc
irb(main):022:0> p abc.object_id
3911950
=> nil
irb(main):023:0> abc = :abc
=> :abc
irb(main):024:0> p abc.object_id
3911950
=> nil
irb(main):025:0> p :object_id
:object_id
=> nil
いずれも同じアドレスを指していることがわかりました。
さらに、文字列のとの連結も試してみました。
irb(main):040:0> p "abc" + "abc"
"abcabc"
=> nil
irb(main):041:0> p "abc" + :abc
TypeError: cannot convert Symbol into String
from (irb):41:in `+'
from (irb):41
from :0
irb(main):042:0> p "abc" + :abc.to_s
"abcabc"
=> nil
つまり、シンボルは文字列の代わりに使えるが、文字列そのものではない・・・とい
うことでしょうか。
おかげでシンボルそのものについては理解が深まりましたが、使いどころがよく
わからないままです。
う〜〜〜ん、とりあえず、シンボル≒文字列 という理解で、いろいろな参考書や
ソースコードを読んで理解を深めてみたいと思います。
--
クラフトギア 渡辺俊輔 <craftgear@a...>
--
ML: learn-ruby-in-kansai@r...
使い方: http://QuickML.com/
公式ページ: http://jp.rubyist.net/?KansaiWorkshop
過去ログ: http://www.fdiary.net/ml/learn-ruby-in-kansai/
1225 2005-11-23 14:43 [nshttsk@g... ] 復帰 and 懇親会締め切り 1226 2005-11-25 15:07 ┗[craftgear@a... ] Rubyについてのnoviceな質問はOK? 1227 2005-11-25 15:29 ┗[konami@k... ] 1228 2005-11-26 01:30 ┗[craftgear@a... ] シンボルという概念 Re: Rubyについてのnoviceな質問はOK? 1229 2005-11-26 05:22 ┣[adzumi@d... ] 1230 2005-11-26 07:09 ┃┣[xml@t... ] 今日は失礼しました -> 1231 2005-11-26 13:21 ┃┗[craftgear@a... ] 1233 2005-11-26 18:26 ┃ ┗[speakillof@y... ] 1235 2005-11-27 06:35 ┗[usa@g... ] 1238 2005-11-27 16:05 ┗[craftgear@a... ]