菜鸟一日一问,《web 敏捷开发 第三版》115 页
def password = (pwd) @password = pwd return if pwd.blank? create_new_salt self.hashed_password = User.encrypted_password(self.password, self.salt) end
return 是返回方法的值, 此处的 return 是啥意思啊,有没有区别不大吧?
如果 pwd 是 blank,直接 return nil,后面的就不再执行了
这里的 return 和 return nil 是一样的
def password = (pwd) #方法定义 @password = pwd #参数赋值给实例变量 return if pwd.blank? #如果密码为空,那么返回 return,下面的代码不会执行,会退出方法体 create_new_salt self.hashed_password = User.encrypted_password(self.password, self.salt) end
这里 return,不是关注点,关注点是 blank? empty? nil? 的区别才是关注点
请求楼主 格式化/排版一下自己的代码,我们看着好累啊
我想 楼主 的主要问题是, 对return 语法的理解 不正确。 return 的作用如下 1 为函数提供返回值 2 终止函数后续代码的执行
return
password =函数 是一个 属性的赋值函数, 正常情况下,这个函数不需要任何返回值。 这段代码中的return的主要目的, 就是 终止函数后续代码的执行
password =
#5 楼 @ery @Anleb 灰常感谢