top



総投稿数 本 課題月間50本!
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 | 問い合わせ

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

創るmetaboy - WEB創る、サイト創る、何創る - ページランク

 

創ったmetaboy

勉強勉強!!
実験的に構築している
創るブログ
 ( by Movable Type4 )

もうひとつの創るブログ
  ( by Wordpress )

 

カテゴリー

 

リンク集

 

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

 

参加しています

スカウター : 創るmetaboy 
track feed


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


Powered By イーココロ!

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

 

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

▼ほんと最新の10件:
Powered by RSSリスティング

 

Sponserd by

さくらのレンタルサーバ さくらのレンタルサーバ
大容量・高機能レンタルサーバー heteml 大容量・高機能レンタルサーバー heteml
XREA (ValueDomain)

 

ツール その2

 

更新しました!