selfの使い方を色々調べてましたが、selfを使った場合と@を使った場合で結果が同じになります。
Qiitaとか色々見たのですがイマイチ理解できずでして。。。
どっちがいいとかございますでしょうか?
Ruby
1# selfメソッドを使った場合 2class User 3 attr_accessor :name, :station 4 5 def initialize(name, station) 6 # self.nameに引数name を代入する 7 self.name = name 8 self.station = station 9 end 10 def my_profile 11 p "私の名前は#{self.name}で最寄駅は#{self.station}駅です。" 12 end 13 14 # クラスメソッド 15 def self.description 16 # この場合のselfの扱いは、 Userオブジェクトではなく、Userクラス 17 puts "#{self}クラス" 18 end 19end 20 21# Userのオブジェクトを生成し、引数で名前を与える 22user = User.new("田中太郎", "白金高輪") 23user.my_profile # => "私の名前は田中太郎で最寄駅は白金高輪駅です。" 24 25# クラスメソッドの呼び出し 26User.description # => Userクラス
Ruby
1# @を使った場合 2class User 3 attr_accessor :name, :station 4 5 def initialize(name, station) 6 # self.name の代わりに@name にする 7 @name = name 8 @station = station 9 end 10 def my_profile 11 p "私の名前は#{@name}で最寄駅は#{@station}駅です。" 12 end 13 14 # クラスメソッド 15 def self.description 16 # 適当にaaaクラスを記入 17 puts "aaaクラス" 18 end 19end 20 21# Userのオブジェクトを生成し、引数で名前を与える 22user = User.new("田中太郎", "白金高輪") 23user.my_profile # => "私の名前は田中太郎で最寄駅は白金高輪駅です。" 24 25# クラスメソッドの呼び出し 26User.description # => aaaクラス
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/25 05:19