Ruby
【Ruby】クラスのinitializeメソッドで作成したインスタンスを、外部で読み書きする
作成日:2022年07月28日
更新日:2022年07月28日
クラスの initialize メソッドで作成したインスタンスを、外部で読み込みます。
ruby
class Fluit
def initialize(product)
@product = product
end
def fluit
@product
end
end
banana = Fluit.new("バナナ")
puts banana.fluit
上のコードでも読み取ることができるのですが、attr_readerを使用すると、より簡単に記述することができます。
インスタンスを外部で読み込む
initializeメソッドの上に、attr_readerと入力し、スペース後『:インスタンス名』を入力します。
attr_readerの後に『:』を入力するとエラーが発生するので、注意してください。
ruby
class Fluit
attr_reader :product
def initialize(product)
@product = product
end
end
banana = Fluit.new("バナナ")
puts banana.product
ターミナルで実行すると、
設定したインスタンスを表示することができました。
インスタンスを外部で書き込む
通常、インスタンスを外部で書き込むと、エラーが発生します。
ruby
class Fluit
attr_reader :product
def initialize(product)
@product = product
end
end
banana = Fluit.new("バナナ")
puts banana.product = "りんご"
インスタンスを外部で書き込むには、attr_writerを使用します。
ruby
class Fluit
attr_writer :product
def initialize(product)
@product = product
end
def fluit
puts @product
end
end
banana = Fluit.new("バナナ")
banana.product = "りんご"
banana.fluit
ターミナルで実行すると、
書き換えた後のりんごが出力されました。
インスタンスを外部で読み書きする
書き換えたインスタンスをそのまま外部で読み込もうとするとエラーが発生します。
ruby
class Fluit
attr_writer :product
def initialize(product)
@product = product
end
end
banana = Fluit.new("バナナ")
banana.product = "りんご"
puts banana.product
インスタンスを外部で読み書きするには、attr_accessorを使用します。
ruby
class Fluit
attr_accessor :product
def initialize(product)
@product = product
end
end
banana = Fluit.new("バナナ")
banana.product = "りんご"
puts banana.product
ターミナルで実行すると、
書き換えたインスタンスを読み込むことができました。
お知らせ
私事ですが、Udemyで初心者を対象にしたReactの動画コースを作成しました。
Reactについて興味がありましたら、ぜひ下のリンクからアクセスしてください。
詳しくはこちら(Udemyの外部サイトへ遷移します)