Uraraの作業ログ(β)

※がついている機能はパスワード入力が必要 

.

5月24日作業ログ

タグ: Ruby

Article: ちょいRubyを真剣に
" "は式展開される
' 'はされない
p print putsの違い
pはデバッグ用のため.inspectを出力する
puts printは.to_sを出力する(\を反映)
-----------------------------------------------
C:\rails\urara>irb
irb(main):001:0> p "a\nb"
"a\nb"
=> "a\nb"
irb(main):002:0> print "a\nb"
a
b=> nil
irb(main):003:0> puts "a\nb"
a
b
=> nil
-----------------------------------------------
・ヒアドキュメント
Pythonの””” ””” みたいな感じ
-----------------------------------------------
query = < SELECT *
FROM USERS
WHERE id = 1;
SQL
-----------------------------------------------
こんな感じ、終端記号の前にはスペースとか入れちゃダメ、避けたければ開始を
<-SQL
みたいに書く
ヒアドキュメントは式展開されちゃうからそれがいやなら開始を' 'で囲む
%で好きな文字で文字列を囲める、だから
%* "test" *
とか出来る(エスケープせずに"とかが出力できる)
数字やアルファベット以外(マルチバイト文字はダメ)
%dとかはsprintfの機能と一緒
シンボル
:を付けるとシンボルになる
%s(foo1)
%s?foo2?
% はその直後の記号にクォート的な役割を持たせるものらしい
シンボルは同じ名前なら同じものを指す(シングルトンみたいな感じ?)
Rubyの処理系ではシンボルは整数として扱われるため、処理は早くなる
⇒Hashのキーに良く使われる(、がシンボルはGCの対象にならないため、キーがガツガツ増えるような時は文字列にするべきらしい)
ーーーーーーーーーーーーーーーーーーーーーーーーーー
p "foo1" == "foo1"      #=>true
p "foo1".equal?("foo1") #=>false
p :foo2 == :foo2 #=>true
p :foo2.equal? :foo2 #=>true
ーーーーーーーーーーーーーーーーーーーーーーーーーー
==はオブジェクトが等しいかを判定
.equal?はオブジェクトが同一の物であるかを判定(何に使うんだろ?)
.equal?は値が等しいかでなくobject_idが等しいかを評価する
.eql?と書くと==とほぼ同一の比較が行える(ただし.eql?は型比較も行う)
1 と1.0は型が違うからFalse返す
----------------------------------------
v1 = "foo1"
v2 = v1
v1 += "foo2"
p v1 #=> "foo1foo2"
p v2 #=> "foo1"
----------------------------------------
これは、+=をした時点で新しいオブジェクトが生成され、そちらを参照する事になるため
-----------------------------
def func v1
v1.object_id
end
v1 = "foo1"
p v1.object_id
p func(v1)
-----------------------------
実引数のオブジェクト自体が仮引数に渡される

有難いコメント一覧



御芳名: ????????

コメント:
??????????????:http://www.cheapwatchcopy.com/cs-rolex.html ????????:http://www.cheapwatchcopy.com/cs-hublot.html ????????:http://www.cheapwatchcopy.com/cs-chanel.html ???????? http://www.cheapwatchcopy.com/

Destroy Comment

コメントを書いてあげる


御芳名
コメント:
Edit | Back