読者です 読者をやめる 読者になる 読者になる

"Ruby" クラスメソッドとインスタンスメソッドの書き方(例示)

Hey, guys !!

クラスメッドとインスタンスメソッドの書き方が自分の中でごちゃごちゃしてしまう為、メモの様に下に記す。
参考になるようならしてね:)

まずはクラスメソッドの主な書き方3つ...

①
class Foo
  def self.bar
    puts 'class method'
  end
end

Foo.bar # "class method"

②
class Foo
  class << self
    def bar
      puts 'class method'
    end
  end
end

Foo.bar # "class method"

③
class Foo; end
def Foo.bar
  puts 'class method'
end

Foo.bar # "class method"

①はクラスメソッドがわかりやすく記載されている。 ②はrailsでよく書かれている! ③は自分ではあまりお目にかからないですが使われているらしい...

次はインスタンスメソッド!!

①
class Foo
  def baz
    puts 'instance method'
  end
end

Foo.new.baz # "instance method"

②
class Foo
  attr_accessor :baz
end

foo = Foo.new
foo.baz = 'instance method'
puts foo.baz

③
class Foo; end

foo = Foo.new
def foo.bar
  puts 'instance method'
end

Foo.new.baz # "instance method"

うーん色々な書き方があるんだね