【Ruby】private設定について(メモ)
※この記事は随時更新する予定
はじめに
なぜ「private」という設定が必要なのか疑問だったため調べてみた。
privateとは
概要は以下の通り。
アクセス修飾子の一つ。
クラスの外からは呼び出せない。同じインスタンス内でのみ、関数形式で呼び出せる。
呼び出せない例
class User
def hello
p "こんにちは"
end
private
def night
p "おやすみ"
end
end
user = User.new
user.hello #"こんにちは"
user.night #エラー
privateメソッドであるnightメソッドを、クラスの外から呼び出そうとすることでエラーとなる。
一旦クラス内で呼び出したものをクラス外からで呼び出す
class User
def hello
p "こんにちは"
end
def night2
night
end
private
def night
p "おやすみ"
end
end
user = User.new
user.hello #"こんにちは"
user.night2 #"おやすみ"
呼び出そうと思えば可能
class User
def hello
p "こんにちは"
end
private
def night
p "おやすみ"
end
end
user = User.new
user.hello #"こんにちは"
user.send(:night) #"おやすみ"
sendメソッドを使うことで、クラスの内側からメソッドを呼び出すのと同じように実行できる。
以上
Author And Source
この問題について(【Ruby】private設定について(メモ)), 我々は、より多くの情報をここで見つけました https://qiita.com/tech_kento/items/b4fc77a10f4c30f19efe著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .