Ruby勉強

インターネットの企画職な人がプログラミングを勉強するブログ

2015-05-01から1ヶ月間の記事一覧

Ruby条件分岐case - Silver/Gold試験対策

case式は whenのオブジェクト === caseのオブジェクト という形式で真偽判定される。 したがって、whenのオブジェクトによって振る舞いが異なる klass = String pr = ->(s){ s } range = 1..5 r = /^\d+$/ case "12345" when r # 正規表現とのマッチ puts "…

Ruby条件分岐if/unless - Silver/Gold試験対策

# foo.rb hoge = true fuga = true if hoge puts 1 elsif fuga puts 3 else puts 2 end $ ruby foo.rb 1 hoge = false a = if false 1 else 2 end puts a #=> 2 unlessは偽のときに評価され、elsifは置けない。 rubyにおいて、偽とは、false, nilのときのみ …

Ruby演算子 - Silver/Gold試験対策

# ★は再定義可能な演算子(つまりメソッド) 高い :: ★ [] ★ +(単項) ! ~ ★ ** ★ -(単項) ★ * / % ★ + - ★ << >> ★ & ★ | ^ ★ > >= < <= ★ <=> == === != =~ !~ && || .. ... ?:(条件演算子) =(+=, -= ... ) not 低い and or a && b || c #=> (a && b) || c a …

Rubyインスタンス変数 - Silver/Gold試験対策

クラスのインスタンス上で定義できる変数。 インスタンスメソッド内から参照できる。 class A def initialize @a = 0 end def setter(num) @a += num end def getter @a end end a = A.new p a.getter #=> 0 a.setter(2) a.setter(2) p a.getter #=> 4 gette…

Rubyクラスインスタンス変数 - Silver/Gold試験対策

クラスインスタンス変数は、 クラス直下で定義する。クラス内参照・代入はできるが、 サブクラスからは参照できない。 class A @a = 1 def self.hoge p @a end end A.hoge #=> 1。クラスメソッドからは参照できる class B @b = 1 def hoge p @b end end b = …

Rubyクラス変数 - Silver/Gold試験対策

クラス変数は、クラス内だとどこでも参照できて、 継承したクラスでも参照・代入ができる。 class A @@a = 0 puts @@a end #=> 0 A.class_variable_get(:@@a) #=> 0, クラス変数を参照するゲッターメソッド class B @@b = 0 def hoge puts @@b end end B.new…

Ruby変数のスコープ - Silver/Gold試験対策

定数は大文字で始まる。 定数だけに変更は原則できない(代入はできるが警告が出る)。 GreatCar = "TOYOTA" p ::GreatCar #=> "TOYOTA" p Object::GreatCar class Germany GreatCar = "VolksWagen" end p ::Germany::GreatCar #=> "VolksWagen" p Germany::Gr…

Rubyコメント - Silver/Gold試験対策

# コメント1 # コメント2 =begin ここはコメントだよ、=beginと、=endは行頭であることが必要だ。 =end

Ruby組み込み変数 - Silver/Gold試験対策

`$'が頭につけば、通常はグローバル変数。 その中でも特殊変数と呼ばれているものは組み込み定数 Kernel配下の特集変数がそれにあたる グローバル変数と銘打っていても、特殊変数は、 グローバルに値を共有するとは限らない $! 例外を記録する変数 begin hog…

Ruby擬似変数 - Silver/Gold試験対策

見た目変数なのに(小文字)、もしくは定数なのに(警告は出るが無理矢理値は導入できる)、値を代入できないもの。 self true false nil __FILE__ # 実行中ファイル名 __LINE__ # 実行中行番号 __ENCODING__ # 現在のソースのエンコード名 __dir__ # 実行ファイ…

Ruby組み込み定数

組み込み定数は、 STDINでいうなら、正式には Object::STDINという名前空間が定義済みということ STDIN 標準入力である。 IOオブジェクト。getsメソッドをとったりできる IOオブジェクトを検証。getsがprivate_methodだったので sendした ruby -e 'p IO.__se…

Rubyのコマンドラインオプション

MacのTerminalでシェル(bash)実行 -C 指定したディレクトリでスクリプトを実行 # hoge.rb puts("あなたの名前は何ですか?") $ ruby -C ~/Documents/test/ hoge.rb -e Rubyのスクリプトを実行する $ ruby -e 'puts "Hello, Ruby!"' #=> Hello, Ruby! 複数の…