新手问题 此处的 return 作用?

xiaoronglv · 2012年07月09日 · 最后由 xiaoronglv 回复于 2012年07月13日 · 3011 次阅读

菜鸟一日一问,《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 终止函数后续代码的执行

password =函数 是一个 属性的赋值函数, 正常情况下,这个函数不需要任何返回值。 这段代码中的return的主要目的, 就是 终止函数后续代码的执行

需要 登录 后方可回复, 如果你还没有账号请 注册新账号