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


Rubyの学習 free185
ハシュの要素であるキー、値を繰り返し出力する。個別にキーのみ、値のみの出力も行なった。

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

C:\RubyTest>ruby test_sada11-5.rb
Hiroshima => Fukuyama
Okayama => Kurashiki
Hyogo => Kobe
Osaka => Umeda
Kyoto => Fushimi
定近 => 苗字
充始 => 名前
みかん => 果物
紙幣 => 10000
硬貨 => 500
浮動小数点 => 3.14
日付 => 20130930

Hiroshima => Fukuyama
Okayama => Kurashiki
Hyogo => Kobe
Osaka => Umeda
Kyoto => Fushimi
定近 => 苗字
充始 => 名前
みかん => 果物
紙幣 => 10000
硬貨 => 500
浮動小数点 => 3.14
日付 => 20130930

_sadaKey = Hiroshima
_sadaKey = Okayama
_sadaKey = Hyogo
_sadaKey = Osaka
_sadaKey = Kyoto
_sadaKey = 定近
_sadaKey = 充始
_sadaKey = みかん
_sadaKey = 紙幣
_sadaKey = 硬貨
_sadaKey = 浮動小数点
_sadaKey = 日付

_sadaValue = Fukuyama
_sadaValue = Kurashiki
_sadaValue = Kobe
_sadaValue = Umeda
_sadaValue = Fushimi
_sadaValue = 苗字
_sadaValue = 名前
_sadaValue = 果物
_sadaValue = 10000
_sadaValue = 500
_sadaValue = 3.14
_sadaValue = 20130930

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-5.rb そして保存したファイル名を打ち込む。 =end #コメントテスト、ファイル名test_sada11-5テキスト #--------------------------------------------------- #! ruby -Ku require "kconv" #どこのクラスだろ。繰り返しを行なう「each」メソッドを試してみる #キーだけを繰り返し変数に名札付けしていく「each_key」メソッドを試してみる #値だけを繰り返し変数に名札付けしていく「each_value」メソッドを試してみる #ハッシュに含まれる要素毎に「キー」と「値」を順にブロック内に名札付け出力する #短縮形のハシュオブジェクトは[]ではなく{}を使う _sada1 = {"Hiroshima" => "Fukuyama", "Okayama" => "Kurashiki", "Hyogo" => "Kobe", "Osaka" => "Umeda", "Kyoto" => "Fushimi", "定近" => "苗字", "充始" => "名前", "みかん" => "果物", "紙幣" => 10_000, "硬貨" => 500, "浮動小数点" => 3.14, "日付" => 20130930} =begin これでもちろん文字化けしませんが、プログラムを短く書くために省略できるか下記を試してみた _sada1.each{|_sadaKey, _sadaValue| print(Kconv.tosjis("#{_sadaKey}"), "=>", Kconv.tosjis("#{_sadaValue}"), "\n") } =end #これでも文字化けしませんね。正式には上記の方がいいと思うんですけど #ハシュオブジェクトの要素を繰り返し変数(_sadaKey, _sadaValue)に紐付けしながらプロック内の出力プログラムを実行する。 _sada1.each{|_sadaKey, _sadaValue| print(_sadaKey, "=>", _sadaValue, "\n") } print("\n") #「each」と「each_pair」メソッドの機能は同じ _sada1.each_pair{|_sadaKey, _sadaValue| print(_sadaKey, "=>", _sadaValue, "\n") } print("\n") #「each_key」メソッドは要素の中の「キー」だけをブロック内に渡す。 _sada1.each_key{|_sadaKey| print("_sadaKey = ", _sadaKey, "\n") } print("\n") #「each_value」メソッドは要素の中の「値」だけをブロック内に渡す。 _sada1.each_value{|_sadaValue| print("_sadaValue = ", _sadaValue, "\n") } print("\n")


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

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

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