top



総投稿数 本 
no_100

Ruby:◇変数と定数:基礎的な考え方は他の言語と同じ ・・・ 【Ruby:9.5歩目】

 2008-07-08
第9.5歩
 ◇定数:アルファベット大文字で始まる


 これはわかり易いですねぇ。VBやPHPでスクリプト書くときも
自主的に定数は 全部大文字とかしてましたが
(例)ROOT_DOMAIN = "****"
Ruby では 決まり なんですねぇ。

Sitename = "ネットショップ開設比較"
p Sitename "=> "ネットショップ開設比較"
> 確認した

定数は再代入ができない
 1度入れたら2度目以降 入れ直しできない

 ちなみにそれを行うと次の警告メッセージだが
 「****.rb:3: warning: already initialized constant Sitename」
 これは、実行時にはエラーとはならない
 だがもちろん こんな使い方はしないね。
 ・・・当たり前だよね。だったら変数使えばいい。

・定数はローカルメソッドよりも広いスコープで
 参照できる

 ん? ちょっと気になる。曖昧だなぁ。一応確実に抑えておこう

定数のスコープ
1:クラス/モジュールで定義された定数は、そのクラス/モジュールの中で参照可
2:クラス/モジュール定義がネストしている場合には、内側のクラス/モジュールから外側の定数を参照可
3:スーパークラス及びインクルードしたモジュールの定数を参照可
4:直接参照できない定数は、::演算子を使って、クラス/モジュール名を指定することにより参照

 
 [未定義の定数]
  未定義の定数は参照できない
  未定義の定数にアクセスすると
   NameError が発生する(ローカル変数と同じだ)
p Sitename # NameError が発生する
> 確認した
*****.rb:5: uninitialized constant Sitename2 (NameError)



第9.6歩
 ◇インスタンス変数:@で名前が始まる


 今回は概略。
 ひとつのオブジェクトに所属し
  スコープもそのオブジェクトに限られる

(使用例)
class Bar # クラス定義
def foo # インスタンスメソッド定義
@a = "Hello" # インスタンス変数
end
end
> 確認した

 [未定義のインスタンス変数]
  未定義のインスタンス変数は参照できない
  未定義のインスタンス変数にアクセスすると
   nil が返ってくる
p @a #=> nil
> 確認した



第9.7歩
 ◇クラス変数:@@で名前が始まる


 クラス変数のスコープは、クラス定義の中

(使用例)
class Bar # クラス定義
@@a = "Hello" # クラス変数
p @@a #=> "Hello"
end
> 確認した
・この例では、Barクラスの中でのみ使用可能

・あるクラスの中で定義されたクラス変数を
 他のクラス定義の中から参照することはできない

 [未定義のクラス変数]
  未定義のクラス変数は参照できない
  未定義のクラス変数にアクセスすると
   NameError が発生する(ローカル変数と同じだ)
p @@b # NameError が発生する
> 確認した
*****.rb:20: uninitialized class variable @@b in Object (NameError)



FC2ブログランキングにほんブログ村 IT技術ブログ Webサイト構築へブログ王ランキング人気ブログランキング人気ホームページランキングへ
commentsコメント
comment_post












管理者にだけ表示を許可する
commentトラックバック
トラックバックURL:
http://metaboy.blog23.fc2.com/tb.php/100-b38d1a83
ようこそ
Add to Google 創るmetaboy:RSSフィード
My Yahoo!に追加
最新記事のRSS | 問い合わせ

正当なHTMLです! 正当なCSSです!

創るmetaboy - WEB創る、サイト創る、何創る -
metaboy つぶやき:twitter
すみません。禁煙カウンタ修復中・・・

 

創ったmetaboy
カテゴリー

 

リンク集

 

ブロとも申請フォーム
月別アーカイブ
 

 

参加しています

スカウター : 創るmetaboy
track feed


SEO対策:プログラミング
SEO対策:WEBサイト
SEO対策:ホームページ
SEO対策:
SEO対策:WEBサービス


Powered By イーココロ!

グリーンブログ ブログで止める温暖化

 

サイトマップ と 関連記事
サイトマップ(全ての記事)
を表示する

▼関連記事(5件まで):
読み込み中...

 

Sponserd by

さくらのレンタルサーバ さくらのレンタルサーバ
大容量・高機能レンタルサーバー heteml 大容量・高機能レンタルサーバー heteml
XREA (ValueDomain)
使えるねっとのVPS(仮想専用サーバー)月2480円〜 使えるねっと
お名前.com お名前.com
名づけてねっと名づけてねっと
ムームードメインムームードメイン
レンタルサーバーなら使えるねっと

 

ツール その2






 

時間あります?