Ruby勉強

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

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

Ruby 同じ意味のメソッド - Silver/Gold試験対策

findとdetectは同じ a = [1, 5, 8, 15, 22, 23, 14] p a.find {|i| i % 7 == 0 } #=> 14 b = [1, 3] p b.find {|i| i % 7 == 0 } #=> nils c = Proc.new { "7で割り切れる数は要素はありませんでした" } p b.detect(c){|i| i % 7 == 0 } #=> "7で割り切れる…

Ruby Kernelモジュール#1 - Silver/Gold試験対策

Kernelはモジュール Objectクラスのメソッド定義は実際はKernelモジュールが行なってインクルードしている #変換 String(1) #=> "1" Complex(1,2) #=> 1 + 2i Hash(key: :value) #=> {:key => :value} Float(1) #=> 1.0 Float("1") #=> 1.0 Rational(2, 3) #…

Ruby破壊的メソッド - Silver/Gold試験対策

破壊的メソッドのメソッド名には!がついているだけとは限らない リンク リンク !がつかなくても破壊的メソッドがある # Arrayの破壊的メソッドを引き続き覚えれば良い # 破壊的 # String#insert s = "string" s.insert(0, "long-") p s #=> "long-string" # …

Rubyモジュール_prepend - Silver/Gold試験対策

prepend と includeの違い # prependで読み込まれたモジュールメソッドのほうが先に呼び出される module IncludeModule def embeded_method :from_include_module end end module PrependModule def embeded_method :from_prepend_module end end class Prep…

Rubyモジュール - Silver/Gold試験対策

# モジュールと、クラスへのインクルード module A def fuga puts("Hello, Bob. My name is #{self.class}") end end class Alice include A def fuga super puts "Nice to Meet you" end end Alice.new.fuga #=>Hello, Bob. My name is Alice Nice to Meet …

Ruby特異クラス/特異メソッド - Silver/Gold試験対策

初期化をせずとも、クラスから直接メソッドを実行できる、クラスメソッド 初期化したクラスに、改めてメソッドを付けたりもできる、特異メソッド。 両者とも、特異メソッドの一形態。 class A class << self def hoge :hoge end end end p A.hoge #=> :hoge …

Rubyメソッド定義 - Silver/Gold試験対策

# メソッドの定義方法 class Klass_A def hoge p :hoge end end Klass_A.new.hoge # メソッドの定義方法 Klass_B = Class.new do def hoge p :hoge end end Klass_B.new.hoge # メソッドの定義方法 class Klass_C define_method(:hoge,Proc.new { p :hoge })…

Rubyクラスメソッド - Silver/Gold試験対策

# クラスメソッドの定義。実行時、初期化が要らない class Hoge def self.fuga :fuga end end p Hoge.fuga #=> :fuga # selfの正体を出力 class Hoge def (p(self)).fuga :fuga end end #=> Hoge Hoge # クラスメソッドの定義 class Hoge def Hoge.fuga :fug…

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

# クラスインスタンス変数 class Hoge @a = :a def self.a @a end end puts Hoge.a #=> :a class Hoge @a = :a @@b = :b def fuga p self.class.instance_variable_get(:@a) p @@b end end Hoge.new.fuga # :a \n :b