在 block 中用 return 确实会报错,但是 break 也不可以简单地认为结束方法的执行,如果我们在方法内部循环之后再加一行代码的话,新加的代码也会被执行
alias_method 这种很核心的方法 rails 应该不会去污染的,而且据标准库文档 alias_method 是给已定义好的方法取别名,想必父类中已经定义过同名方法了吧?
对于问题 1,1 楼已经回答 对于问题 2,其实 Ruby 中类的继承关系是非常简单的,通常情况(也就是没有 super 之类的情况)下,子类相当于把你定义的父类的东西和你定义的子类的东西前后拼接在一起。我们知道两次定义同一个方法,后一次会覆盖前一次,所以子类是无法追溯到父类的父类的同名方法的
Ruby 是我遇到过的最美丽的程序语言
不对,break 是结束循环,return 才是结束方法。 “break 1”的意思就是,结束循环,并且这个循环的返回值为 1 “return 1”的意思就是,结束方法,并且这个方法的返回值为 1