ruby のハッシュオブジェクトメソッド

ruby のハッシュオブジェクトメソッド
よくつかうメソッドとしては
.size
これで、格納している要素の数を表示できる
p sales.size
とすると
3になる
これは
{“taro”=>100, “jiro”=>150, “sabu”=>300}
というように、3つキーと値の組み合わせがあるから
そして
.empty?
これは、中身が空かどうかを調べる
空でないのなら false が返る
今回なら、中身があるので
p sales.empty?
だと
false
となる
キーがあるか調べるメソッドがあり、それが
.has_key?()
存在しているなら true 存在しないキーなら false になる
例えば、存在しない tanaka にすると
p sales.has_key?(“tanaka”)
の結果は false となる
似たようなメソッドとして、値の検証をする
.has_value?() もある
これも結果が true/false 判定になる
存在しない値である2222 で調べると
p sales.has_value?(2222)
の結果 false になる
ハッシュ関連の関数に関しては、リファレンスを参考にする
http://www.ruby-doc.org/core-1.9.3/Hash.html
また。リファレンスの中にはいくつか破壊的メソッドも存在する

ruby のハッシュオブジェクトについて

ruby のハッシュオブジェクトについて
ruby のハッシュオブジェクトは
他の言語だと、連想配列と呼ばれているものになる
ハッシュの場合、それぞれの値に対してキーをつける
通常の配列の場合だと
sales =[100,150,300]

0が100というようになるが、これが個人のスコアとかで
紐付けする場合、とても面倒
なので、ハッシュで値とキーの関係をつくる
値とキーは => で結ぶ
個人別にスコアをひもづけるには
sales ={“taro”=>100,”jiro”=>150,”sabu”=>300}
というようにする
p sales
で表示すると
{“taro”=>100, “jiro”=>150, “sabu”=>300}
となる
個別の値を取り出すには、キーを指定すればOK
p sales[“taro”]
とすれば、
100
となる
配列のときのように、いれた順番の数値を覚えておくのではなく
キーを覚えておけばいいので、管理が楽になる
このハッシュは
PHP
java script などでも使うので、覚えておくと応用できる

ruby の配列オブジェクトについて

ruby の配列オブジェクトについて
#12 配列オブジェクトを理解する
http://dotinstall.com/lessons/basic_ruby/4712
を参考に
ruby の配列オブジェクトについて学習
ruby でも配列の使い方は
java PHP とほぼ変わらない
配列名 = []
で作成して
配列は0から数える
name =[“hebeeke”,”fc2″,”hogehoge”]
として
p name[1]
とすれば fc2 と表示される
ruby ですこし変わった方法としては
範囲指定で表示
1から2まで表示するには
p name[1..2]
とする
これで、
[“fc2”, “hogehoge”]
というように指定した範囲が出力される
.. というように . が2つなら範囲指定
… というように . を3つにすると
最後の部分は含まないという指定になる
p name[0…2]
だと
0から1という意味になる
コードを書くときに間違えそうなので注意
ちなみに、値をマイナスにすると、後ろから数える
p name[-1]
だと
一番後ろを表示する

ruby の破壊的メソッドについて

ruby の破壊的メソッドについて
#11 破壊的メソッドとは?
http://dotinstall.com/lessons/basic_ruby/4711
を参考に、
!のついた破壊的メソッドについて学習
破壊的メソッドとは
s =”hello”
s1 = s.upcase
p s
p s1とすると
s1 では .upcaseにより
すべて大文字 変換される
この
s1 = s.upcase!
というように、! をつけると
破壊的メソッドになる
これは
普通、
変数 = 値の場合、代入になるだけだけど
破壊的メソッドをつかうと、元の値まで上書きする
s = “hello”
s1 =s.upcase
p s
p s1
の場合だと
“hello”
“HELLO”
というように、見慣れた結果になるけど
s = “hello”
s1 =s.upcase!
p s
p s1
だと
“HELLO”
“HELLO”
というように、代入前の値も変更されるようになる
関数のリファレンスの
http://www.ruby-doc.org/core-1.9.3/String.html
の中にもいくつか、!がついているのがあり
これらは破壊的メソッドを意味している

ruby の文字列オブジェクトのメソッド

ruby の文字列オブジェクトのメソッド
#10 文字列オブジェクトのメソッド
http://dotinstall.com/lessons/basic_ruby/4710
を参考に
ruby の文字列オブジェクトのメソッドについて学習
.length
は文字列の長さを返す
.upcase
は、すべて大文字変換する関数
p “hello” .upcase
とすると
“HELLO”
となる
文字を逆にして表示するなら
.reverse を使う
p “hello”.reverse だと
“olleh” となる
また、探している文字が何文字目にあるかを知らせる
index() というものがある
p “hello”.index(“o”)
とすると、oという文字が何番目にあるか表示される
ただ、この数字は配列なので、0から数えるため
実際に5番目のものは4として表示される
文字が含まれているか、判定するには
.include?()
を使う
wという文字が含まれているかを調べるなら
p “hello”.include?(“w”)
とする
結果は true / false で表示される
これらの関数のリファレンスは
http://www.ruby-doc.org/core-1.9.3/String.html
を調べるようにする

ruby の文字列オブジェクトについて

ruby の文字列オブジェクトについて
#09 文字列オブジェクトを理解する
http://dotinstall.com/lessons/basic_ruby/4709
を参考に
ruby の文字列オブジェクトについて学習
文字列オブジェクト作成のときに
“” でかこむのと ” でかこむのでは意味が異なる
“” は変数や特殊文字を展開する
” は展開しない
これは、Linux の echo コマンドなどで行うとわかりやすい
ちなみに、特殊文字は
\n 改行
\t タブなどがある
たとえば hello world を出す時
puts “hello\nworld”
だと
hello
world
と改行されるけど
puts ‘hello\nworld’
にすると
hello\nworld
とそのままでてくる
ubuntu の vim エディタの場合
“” と ” では途中で色が変わるので、見分けやすい
文字列の展開はちょっと変わっていて
#{変数}
とする
例えば
name =”hebereke”
puts ” my name is #{name}”
というようにすると
my name is hebereke
と表示される
java script とかだと
“my name is “+ name
というようにわけて書くけど
rubyの場合、一緒に書く
ちなみに、ruby の場合、
日本語を取り扱う場合には設定が必要
これがないと
invalid multibyte char (US-ASCII)
というエラーがでてくる
HTML5が最初に
<!DOCTYPE html>
と書いたり
PHPで 、PHPのコードの部分のところに
<?php
と書いたり
シェルスクリプトで
#!/bin/bash
と書くように
ruby で日本語対応するには
# encoding: utf-8
と1行目に書いておく
これで、無事に日本語が表示されるようになる

ruby の数値的オブジェクトのメソッド

ruby の数値的オブジェクトのメソッド
#08 数値的オブジェクトのメソッド
http://dotinstall.com/lessons/basic_ruby/4708
を参考に
数値的オブジェクトで使えるメソッドについて学習
型変換メソッドは
10.5 を整数にするなら
p 10.5.to_i
とする
.to_i は整数にする関数
ruby の場合、
javaとかPHP , C++ とかと違って関数に() がついていないので、最初のうちはわかりにくいかも
.to_ とつくのは、ほとんど型変換の関数
よくあるのが、文字列から整数への変換
あと、分数にする関数があり、それが .to_r
rは Rational の意味
p 10.5 .to_r
とすると
10.5 が分数になり
(21/2)
となる
四捨五入するメソッドもあり、それが .roud
p 10.5 .round
とすると、四捨五入されて11になる
p 10.5 .ceil なら繰り上げ
p 10.5 .floor なら切り捨て
乱数の発生なら rand()
これは、関数らしく()がついている
引数に乱数の発生させる幅を指定
p rand(100)
なら100までの乱数となる
数学的なものを使うには、java script などでおなじみ
Math 関連をつかう
平方根を扱うなら .sqrt() を使う
例えば、2の平方根なら
p Math.sqrt(2)
とする
結果は
1.4142135623730951

ruby で数値オブジェクトの演算

ruby で数値オブジェクトの演算
#07 数値的オブジェクトの演算
http://dotinstall.com/lessons/basic_ruby/4707
を参考に
数値的オブジェクトの学習
ruby では分数を
Rational() で表す
2/3 を表すなら
x = Rational(2,3)
puts x
とすると
2/3 となるはずが
undefined method `Rational’ for main:Object (NoMethodError)
となってしまう
原因は ruby のバージョンの違いで
私の場合 ubuntu ソフトウェアセンターでインストールしたため
ruby -v で確認すると
1.8.7
だった
おそらく、バージョン違いによる関数の取り扱い変更が
原因と思われるので
ruby ubuntu 1.9.3
で検索し

http://www.sssg.org/blogs/naoya/archives/2489

を参考に
sudo apt-get install -y ruby1.9.3
でインストール
これで、もう一度バージョンチェックすると
ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
で更新を確認
再度実行すると
2/3 と表示された
どうやら、バージョンの違いだったようだ
これと同様でよくあるのが Android
こっちはもっとバージョンによりAPIが変わるため
古い ver 2.2 などのアプリ作成本を参考に行うと
エラー連発になったりする
ちなみに、最新は4.2 あたりで
Nexus 7 に搭載されている
以前、Linux サーバー構築講座を受けたときに
バージョンを講座のものと同じにすることで
余計な手間がかからないし再現性ができると
あったので、これが生かせる状況になった
話がそれてきたので、rubyの演算子について
これも、ほかの言語とあまりかわらない
+ – * / % はおなじ意味
**で、べき乗となる
もし、5の2乗とするなら
x = 5 ** 2
puts x
とすると、
25 になる
ちなみに、ruby では分数の計算もできる
Rational() で分数が扱えるので
x = Rational(2,3) + Rational(5,6)
puts x
とすると
3/2
となる

DisplayMetricsクラスの代表的フィールド

DisplayMetricsクラスの代表的フィールド
float density
画面の論理的密度
 
int densityDpi
インチおたりのドット数で表した画面密度
int heightPixels
ピクセル値で表した画面の絶対的高さ
int widthPixels
ピクセル値で表した画面の絶対的幅
float xdpi
x軸の1インチあたりの物理的なピクセル数
float ydpi
y軸の1インチあたりの物理的なピクセル数

から送られてきた高速メモ帳

DisplayMetricsクラスの代表的フィールド

DisplayMetricsクラスの代表的フィールド
float density
画面の論理的密度
 
int densityDpi
インチおたりのドット数で表した画面密度
int heightPixels
ピクセル値で表した画面の絶対的高さ
int widthPixels
ピクセル値で表した画面の絶対的幅
float xdpi
x軸の1インチあたりの物理的なピクセル数
float ydpi
y軸の1インチあたりの物理的なピクセル数