top


総投稿数 本 
no_

スポンサーサイト

 --------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリ :スポンサー広告 トラックバック(-) コメント(-)
no_271

Ruby:◇ハッシュ:基本 ・・・ 【Ruby:16歩目】

 2008-09-30
第16歩
 ◇ハッシュ:基本

  ・リテラルで作り出すことができるオブジェクト
  ・キーと値のペアが格納され、
   「配列」に似ている。
  ・Hashクラスのオブジェクト でもある


 +++++++++++++++++++++++++++++++++++
 ・配列に似ている
 +++++++++++++++++++++++++++++++++++

   ●空のハッシュ
    ・{} を利用する
h = {}

 空のハッシュオブジェクトを変数hに代入

   ●ハッシュオブジェクトに値を追加
h = {}
h[0] = "創る"
puts h[0] #=> "創る"

 ここまでは、「配列」と同じ
 ハッシュでは、さらに次のようなことが可能だ

    ・キーに文字列を用いる
h = {}
h["キーワード"] = "創る"
puts h["キーワード"] #=> "創る"

 えっ? 配列ではできないのか?
 ・配列のインデックスは整数しか与えられない
  ・・・とある
 ・これら、0 や "キーワード" のことを
  ハッシュでは、「キー」と呼ぶ

※phpの場合と比べると・・・
phpでは配列でも
$options = Array();
$options['Keywords'] = "PHP";
$options['SearchIndex'] = "Books";
※今取り掛かっているAmazonAPIでの例

 なんて、出来るよなぁ。
 これは気をつけないと・・・


 +++++++++++++++++++++++++++++++++++
 ・ハッシュを作る
 +++++++++++++++++++++++++++++++++++
  ・リテラルでハッシュオブジェクトを生成

   ●キーと値 のペアからハッシュを生成
h = {"キーワード" => "創る" }
puts h["キーワード"] #=> "創る"
> 確認した

   ●複数のペアを格納
h = {"キーワード" => "創る", "タイトル" => "創るmetaboy"}
puts h["キーワード"] #=> "創る"
puts h["タイトル"] #=> "創るmetaboy"
> 確認した
 ・複数の場合、カンマ(,)で区切るが、最後は
  あってもなくてもいい
h = {"キーワード" => "創る", "タイトル" => "創るmetaboy", "運営主宰" => "metaboy",}
puts h["キーワード"] #=> "創る"
puts h["タイトル"] #=> "創るmetaboy"
puts h["運営主宰"] #=> "metaboy"
> 確認した


 +++++++++++++++++++++++++++++++++++
 ・Hashクラスのオブジェクト
 +++++++++++++++++++++++++++++++++++

   ●ハッシュオブジェクトのクラス
h = {}
p h.class #=> Hash
> 確認した
 ・・・ということは、

   ●Hash.new でハッシュオブジェクトを
    作成することもできる

h = Hash.new
p h.class #=> Hash
> 確認した

   ●pメソッドで表示
h = {"キーワード" => "創る", "タイトル" => "創るmetaboy", "運営主宰" => "metaboy"}
p h #=> {"キーワード" => "創る", "タイトル" => "創るmetaboy", "運営主宰" => "metaboy"}
> 確認した


 +++++++++++++++++++++++++++++++++++
 ・代入
 +++++++++++++++++++++++++++++++++++
  ・アクセス、代入する時にはキーを利用

   ●新しい要素を追加
h = {"キーワード" => "創る", "タイトル" => "創るmetaboy", "運営主宰" => "metaboy"}
h["最新更新日"] = "20080930";
p h #=> {"最新更新日" => "20080930", "キーワード" => "創る", "タイトル" => "創るmetaboy", "運営主宰" => "metaboy"}
> 確認した
 ほぉ、デフォルトでは、頭に追加されるのか?


 +++++++++++++++++++++++++++++++++++
 ・キー
 +++++++++++++++++++++++++++++++++++
  ・どんなオブジェクトでも利用できる

   ●いろいろなオブジェクトでテスト
    (整数、文字列、小数)
h = {100 => "昨日のテストの点", "metaboy" => "めたぼーい", 3.333 => "割り切れない"}
p h #=> {"metaboy" => "めたぼーい", 3.333 => "割り切れない",100 => "昨日のテストの点"}
> 確認した
 あれ?表示される順番が違うぞ?

   ●キーとしてシンボルはよく使われる
    ・処理負荷が軽い!
h = {:apple => "ビートルズ", :stone => "ローリングストーンズ", :animal => "アニマルズ"}
p h #=> {:apple => "ビートルズ", :stone => "ローリングストーンズ", :animal => "アニマルズ"}
> 確認した
 今度は順番そのままだなぁ

★ハッシュ内に格納される順所には注意 だな。
★配列で、キーに文字列が使えないのか
★シンボルは本当に軽くて便利そうだな


※この連載は、はじめて「Ruby」に取り組んだmetaboyが、
 PHPなどとの違いを考慮しつつ、ゆっくりと
 良書「はじめてのRubyプログラミング」を基に
 学んでゆく、詳細な記録です。
                      (本日の参照:146頁


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


commentsコメント
comment_post












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

仕事検索、アルバイト検索、依頼仕事の検索ポータル - 仕事検索.COM - www.jobkensaku.com ツクルン

創るmetaboy - WEB創る、サイト創る、何創る - 創ったmetaboy

 

リンク集

 

最近の記事

 

ブロとも申請フォーム
Sponserd by

さくらのレンタルサーバ さくらのレンタルサーバ
大容量・高機能レンタルサーバー heteml 大容量・高機能レンタルサーバー heteml
XREA (ValueDomain)
お名前.com お名前.com
名づけてねっと名づけてねっと
ムームードメインムームードメイン

 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。