初めてのRubyで勉強。
Windows XP ruby1.8.6
1.1 objectとは
- アイデンティを有する(unique, to know the self number and the class it belongs)
- メッセージを受け取る
---【疑問点】 メッセージを送っているのはだれか?神様か?環境か?
---【疑問点】 オブジェクト同士がメッセージを送りあい、調和のとれた状態とか、アンバランスな状態とかをつくりだすことは可能か?
- 内部状態を保つ(変数のこと?)
someobject.object_id
someobject.class
イテレータ 繰り返し実行するブロック付きメソッド(higher functionと同じような機能)
Ruby上で新たな言語を構築し、動かすのが、最近のRubyプログラミング (Ruby on Rails?)
例1-8
d.days => 3
p d.days => 3 =>nil なぜnilか?
また、p d.daysの場合、objectはどれか pは何か? メソッド?
d.days.print は、あるのか。
Rubyの機能の探し方
- 文法 組み込み関数 組み込みクラス 標準添付ライブラリの順に探す。
動的 クラスの定義は実行時 <=> 静的 C++ Java C# クラスやメソッドの定義はコンパイル時
実行時ライブラリのロード
require 'rational'
load '/path/config.rb'
command-line debuger: ruby -rdebug hello.rb
ri String ; ri File#read
インスタンスメソッド String#each_byte
クラスメソッド Time.now Time::now
1.class => Fixnum
1.methods => ["%",
Fixnum.ancestors #=> [Fixnum, Integer, ]
Fixnum.instance_methods #=> ["%", ]
Fixnum.kind_of? Class #=> true
特異メソッド 特定のオブジェクトに属するメソッド
a = "str"
def a.greet
puts "I am the object #{self.object_id}"
end
a.greet #=> I am the object 33334
大部分の演算子はメソッドのsyntactic sugar => polymorphism
1.2 + 3 #=>4.2
"str" + "ing" #=> "string"
1 <<>4
["a", "b"] << "c" #=> ["a", "b", "c"]
$stdout << "hi!" #=> hi!
0 件のコメント:
コメントを投稿