*ブログに戻る →ここ です。


Rubyの学習 free184
ハシュの要素であるキー値を設定する、個別に値を追加したり

↓Rubyのプログラムを実行すると以下のように表示される。

C:\RubyTest>ruby test_sada11-4.rb
["Hiroshima" =>2012, "Okayama"=>"Kurashiki"]
ハシュオブジェクト要素数 = 2
ハシュオブジェクト要素数 = 2
["Hiroshima" =>20120930, "Okayama"=>"Kurashiki", "Hyogo"=>"Kobe", "Osaka"=>"Umeda"]
ハシュオブジェクト要素数 = 4
ハシュオブジェクト要素数 = 4
["Hiroshima" =>"Fukuyama", "Okayama"=>"Kurashiki", "Hyogo"=>"Kobe", "Osaka"=>"Umeda", "Kyoto"=>"Fushimi"]
配列の要素数 = 5
配列の要素数 = 5
地名 Kanagawa : sada_none
地名 Hiroshima : Fukuyama
地名 Hiroshima : Fukuyama
地名 Okayama : Kurashiki
地名 Hyogo : Kobe
地名 Osaka : Umeda
地名 Kyoto : Fushimi
地名 Shiga : sada_none
地名 Shiga : hira_none
ハシュオブジェクト要素数 = 5
ハシュオブジェクト要素数 = 5

C:\RubyTest>




Monday,September,30,2013

プログラムの表示

=begin Monday,September,30,2013 ○値から謎の多いクラス名を調べてみる。 ルビーの値(オブジェクト)が所属するクラス Numeric (説明はfree171.html)[step]メソッドはNumericクラスである。 [step]メソッドは、任意に決めた浮動小数点の値を繰り返し足していく事ができるメソット。 Float (浮動小数点数) Integer (説明はfree170.html)[times][upto][downto]メソッドはIntegerクラス Numericのサブクラスでもある。 このメソッドは要素などの値の範囲を指定し、for句(演算子)と連動させる事で変数へ繰り返し値を名札 付けしながらブロック内のプログラムを実行させる。 Bignum (大きな整数) Fixnum (整数) Kernel [loop]メソッドはKernelクラスである。無限に繰り返しを行なう。(今回学習した) PHPでの値の型 string (文字句) integer (数字) double (小数点) free147.php ←ここで試した。 謎の多いクラスを調べる方法は下記、またの機会に別のページで試してみます。 #! ruby -Ku print("定近です。".class())←クラスを調べるには、これを使って調べます。 print("\n") #! ruby -Ku ← の「u」とは、UTF-8 のこと(文字化けを回避します)。 s or S Shift_JIS e or E EUC-JP u or U UTF-8 n or N NONE(ASCII) 「require」メソッドで「kconv」ライブラリを読みんで、モジュール関数「Kconv.tosjis()」 を使用することにより表示の時に Shift_JIS に変換している。(メソットというからにはクラスがあるんでしょうね) まだきちんと理解できていません。 保存するときは、文字コードセットを UTF-8 にすること。 サクラエディタを使用しています。 コマンドプロンプトを開きます。 C:Documents and Settings\User> C:Documents and Settings\User>cd C:\rubytest と入力する。「cd」カレントディレクトリの略。現在のフォルダという意味(フォルダは任意の名前で自作した) C:\RubyTest>ruby test_sada11-4.rb そして保存したファイル名を打ち込む。 =end #コメントテスト、ファイル名test_sada11-4テキスト #--------------------------------------------------- #! ruby -Ku require "kconv" #該当しないキーが入力されたらsada_noneと出力する、ハシュオブジェクトを連続で入力したからか反映されない _sada1 = Hash.new("sada_none") #デフォルトは上に持ってこないとだめ =begin ハッシュオブジェクトの要素であるキーを指定することで値を取得する事ができます キーを指定することで新しい数字オブジェクト、文字オブジェクトを代入できる ハッシュオブジェクト[キー] = オブジェクト #これだと不調 #短縮形のハシュオブジェクトは[]ではなく{}を使う _sada1 = {"Hiroshima" => 2012, "Okayama" => "Kurashiki"} =end #新規にハシュオブジェクトの要素(キー,値)を作成している _sada1["Hiroshima"] = 2012 #文法は違えど機能は上記と同じ、新規にハシュオブジェクトの要素を作成している _sada1.store("Okayama", "Kurashiki") p _sada1 #Hashクラスのメソッド「length」「size」を使い要素の数を出力する。 #「length」「size」は同じ機能 print(Kconv.tosjis("ハシュオブジェクト要素数 = "), _sada1.length, "\n"); print(Kconv.tosjis("ハシュオブジェクト要素数 = "), _sada1.size, "\n"); #既にある値に新しい値で上書きする _sada1["Hiroshima"] = 20130930 #新しい要素を追加する _sada1["Hyogo"] = "Kobe" _sada1["Osaka"] = "Umeda" p _sada1 #Hashクラスのメソッド「length」「size」を使い要素の数を出力する。 #「length」「size」は同じ機能 print(Kconv.tosjis("ハシュオブジェクト要素数 = "), _sada1.length, "\n"); print(Kconv.tosjis("ハシュオブジェクト要素数 = "), _sada1.size, "\n"); =begin ハッシュオブジェクト.store(key,value) 要素のペア(キー, 値) = ("Hiroshima", "Fukuyama") =end #上記と同じ意味、機能 #既にある値に新しい値で上書きする #新しい要素を追加する _sada1.store("Hiroshima", "Fukuyama") _sada1.store("Kyoto", "Fushimi") p _sada1 #Hashクラスのメソッド「length」「size」を使い要素の数を出力する。 #「length」「size」は同じ機能 print(Kconv.tosjis("配列の要素数 = "), _sada1.length, "\n"); print(Kconv.tosjis("配列の要素数 = "), _sada1.size, "\n"); print(Kconv.tosjis("地名 Kanagawa : "), _sada1["Kanagawa"], "\n") #失敗のテスト print(Kconv.tosjis("地名 Hiroshima : "), _sada1["Hiroshima"], "\n") print(Kconv.tosjis("地名 Hiroshima : "), _sada1.fetch("Hiroshima"), "\n") #上記と文法は違うが同じ意味 print(Kconv.tosjis("地名 Okayama : "), _sada1["Okayama"], "\n") print(Kconv.tosjis("地名 Hyogo : "), _sada1["Hyogo"], "\n") print(Kconv.tosjis("地名 Osaka : "), _sada1["Osaka"], "\n") print(Kconv.tosjis("地名 Kyoto : "), _sada1["Kyoto"], "\n") print(Kconv.tosjis("地名 Shiga : "), _sada1["Shiga"], "\n") #キーが該当しない場合、キーの右のデフォルト設定hira_noneを返す print(Kconv.tosjis("地名 Shiga : "), _sada1.fetch("Shiga", "hira_none"), "\n") #上記と文法は違うが同じ意味 print(Kconv.tosjis("ハシュオブジェクト要素数 = "), _sada1.length, "\n"); print(Kconv.tosjis("ハシュオブジェクト要素数 = "), _sada1.size, "\n");


* 参考にしたサイトは→ こちら です。

これは赤色の文字例です。

これは青色の文字例です。