标签:怎么 调用 end super 方法 参数 Ruby method
Ruby 的 super 仅用于继承中,用来给子方法调用父方法。
super 例子
class Parent
def method(a, b)
puts "#{a} - #{b}"
end
end
class ChildA < Parent
def method(a, b)
super(b, a)
end
end
class ChildB < Parent
def method(a, b)
super
end
end
child_a = ChildA.new
child_b = ChildB.new
child_a.method('a', 'b')
child_b.method('a', 'b')
输出结果
b - a
a - b
super 解释
super 用于调用父类的方法,分为带参数和不带参数两种使用方法。
- 带参数:代表用指定的参数调用父方法
- 不带参数不带括号:代表将当前方法的参数,原封不动地传给父方法
不带参数调用时,不要写括号,写括号就变成带参数调用了,这是需要注意的点。
假设父方法是不定参数 *args
的方式,而如果子方法通过 super()
调用父方法,此时子方法的参数并没有传给父方法,这种将会出现隐秘的 bug。
标签:怎么,调用,end,super,方法,参数,Ruby,method 来源: https://www.cnblogs.com/linying1991/p/15583175.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。