###alias
ruby
1class User 2 3 def full_name 4 puts "Johnnie Walker" 5 end 6 7 def self.add_rename 8 alias :name :full_name 9 end 10end 11 12class Developer < User 13 def full_name 14 puts "Geeky geek" 15 end 16 add_rename 17end 18 19Developer.new.name #=> 'Johnnie Walker'
###alias_method
ruby
1class User 2 3 def full_name 4 puts "Johnnie Walker" 5 end 6 7 def self.add_rename 8 alias_method :name, :full_name 9 end 10end 11 12class Developer < User 13 def full_name 14 puts "Geeky geek" 15 end 16 add_rename 17end 18 19Developer.new.name #=> 'Gekky geek'
それぞれ上記のような結果になると思うのですが、
aliasは定義された際のクラスをselfと考え、
alias_methodは継承された先のクラスをselfとみなすということでしょうか??
挙動は分かったのですが、原理がてんで分かりません。
どなたか答えていただけると幸いです!
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/02 23:40
2017/03/03 03:03
2017/03/03 05:13